1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857
#![allow(non_camel_case_types, non_upper_case_globals)]
use crate::co::*;
const_ordinary! { AC_SRC: u8;
/// [`BLENDFUNCTION`](crate::BLENDFUNCTION) `BlendOp` and `AlphaFormat`
/// (`u8`).
=>
=>
OVER 0x00
ALPHA 0x01
}
const_bitflag! { ACCELF: u8;
/// [`ACCELL`](crate::ACCEL) `fVirt` (`u8`).
///
/// Originally has `F` prefix.
=>
=>
/// The `key` member specifies a virtual-key code. If this flag is not
/// specified key is assumed to specify a character code.
VIRTKEY 1
/// The SHIFT key must be held down when the accelerator key is pressed.
SHIFT 0x04
/// The CTRL key must be held down when the accelerator key is pressed.
CONTROL 0x08
/// The ALT key must be held down when the accelerator key is pressed.
ALT 0x10
}
const_ordinary! { APPCOMMAND: u16;
/// [`wm::AppCommand`](crate::msg::wm::AppCommand) commands (`u16`).
=>
=>
BROWSER_BACKWARD 1
BROWSER_FORWARD 2
BROWSER_REFRESH 3
BROWSER_STOP 4
BROWSER_SEARCH 5
BROWSER_FAVORITES 6
BROWSER_HOME 7
VOLUME_MUTE 8
VOLUME_DOWN 9
VOLUME_UP 10
MEDIA_NEXTTRACK 11
MEDIA_PREVIOUSTRACK 12
MEDIA_STOP 13
MEDIA_PLAY_PAUSE 14
LAUNCH_MAIL 15
LAUNCH_MEDIA_SELECT 16
LAUNCH_APP1 17
LAUNCH_APP2 18
BASS_DOWN 19
BASS_BOOST 20
BASS_UP 21
TREBLE_DOWN 22
TREBLE_UP 23
MICROPHONE_VOLUME_MUTE 24
MICROPHONE_VOLUME_DOWN 25
MICROPHONE_VOLUME_UP 26
HELP 27
FIND 28
NEW 29
OPEN 30
CLOSE 31
SAVE 32
PRINT 33
UNDO 34
REDO 35
COPY 36
CUT 37
PASTE 38
REPLY_TO_MAIL 39
FORWARD_MAIL 40
SEND_MAIL 41
SPELL_CHECK 42
DICTATE_OR_COMMAND_CONTROL_TOGGLE 43
MIC_ON_OFF_TOGGLE 44
CORRECTION_LIST 45
MEDIA_PLAY 46
MEDIA_PAUSE 47
MEDIA_RECORD 48
MEDIA_FAST_FORWARD 49
MEDIA_REWIND 50
MEDIA_CHANNEL_UP 51
MEDIA_CHANNEL_DOWN 52
DELETE 53
DWM_FLIP3D 54
}
const_wm! { BM;
/// Button control
/// [messages](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-button-control-reference-messages)
/// (`u32`).
=>
=>
GETCHECK 0x00f0
SETCHECK 0x00f1
GETSTATE 0x00f2
SETSTATE 0x00f3
SETSTYLE 0x00f4
CLICK 0x00f5
GETIMAGE 0x00f6
SETIMAGE 0x00f7
SETDONTCLICK 0x00f8
}
const_cmd! { BN;
/// Button control `WM_COMMAND`
/// [notifications](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-button-control-reference-notifications)
/// (`u16`).
=>
=>
CLICKED 0
PAINT 1
HILITE 2
UNHILITE 3
DISABLE 4
DOUBLECLICKED 5
PUSHED Self::HILITE.0
UNPUSHED Self::UNHILITE.0
DBLCLK Self::DOUBLECLICKED.0
SETFOCUS 6
KILLFOCUS 7
}
const_ws! { BS: u32;
/// Button control
/// [styles](https://learn.microsoft.com/en-us/windows/win32/controls/button-styles)
/// (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
PUSHBUTTON 0x0000_0000
DEFPUSHBUTTON 0x0000_0001
CHECKBOX 0x0000_0002
AUTOCHECKBOX 0x0000_0003
RADIOBUTTON 0x0000_0004
R3STATE 0x0000_0005
AUTO3STATE 0x0000_0006
GROUPBOX 0x0000_0007
USERBUTTON 0x0000_0008
AUTORADIOBUTTON 0x0000_0009
PUSHBOX 0x0000_000a
OWNERDRAW 0x0000_000b
TYPEMASK 0x0000_000f
LEFTTEXT 0x0000_0020
TEXT 0x0000_0000
ICON 0x0000_0040
BITMAP 0x0000_0080
LEFT 0x0000_0100
RIGHT 0x0000_0200
CENTER 0x0000_0300
TOP 0x0000_0400
BOTTOM 0x0000_0800
VCENTER 0x0000_0c00
PUSHLIKE 0x0000_1000
MULTILINE 0x0000_2000
NOTIFY 0x0000_4000
FLAT 0x0000_8000
RIGHTBUTTON Self::LEFTTEXT.0
}
const_bitflag! { BSM: u32;
/// [`BroadcastSystemMessage`](crate::BroadcastSystemMessage) `info` and
/// return value (`u32`).
=>
=>
ALLCOMPONENTS 0x0000_0000
VXDS 0x0000_0001
NETDRIVER 0x0000_0002
INSTALLABLEDRIVERS 0x0000_0004
APPLICATIONS 0x0000_0008
ALLDESKTOPS 0x0000_0010
}
const_bitflag! { BSF: u32;
/// [`BroadcastSystemMessage`](crate::BroadcastSystemMessage) `flags`
/// (`u32`).
=>
=>
QUERY 0x0000_0001
IGNORECURRENTTASK 0x0000_0002
FLUSHDISK 0x0000_0004
NOHANG 0x0000_0008
POSTMESSAGE 0x0000_0010
FORCEIFHUNG 0x0000_0020
NOTIMEOUTIFNOTHUNG 0x0000_0040
ALLOWSFW 0x0000_0080
SENDNOTIFYMESSAGE 0x0000_0100
RETURNHDESK 0x0000_0200
LUID 0x0000_0400
}
const_ordinary! { BST: u32;
/// [`bm::GetCheck`](crate::msg::bm::GetCheck) return value (`u32`).
=>
=>
UNCHECKED 0x0000
CHECKED 0x0001
INDETERMINATE 0x0002
PUSHED 0x0004
FOCUS 0x0008
}
const_wm! { CB;
/// Combo box control
/// [messages](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-combobox-control-reference-messages)
/// (`u32`).
=>
=>
GETEDITSEL 0x0140
LIMITTEXT 0x0141
SETEDITSEL 0x0142
ADDSTRING 0x0143
DELETESTRING 0x0144
DIR 0x0145
GETCOUNT 0x0146
GETCURSEL 0x0147
GETLBTEXT 0x0148
GETLBTEXTLEN 0x0149
INSERTSTRING 0x014a
RESETCONTENT 0x014b
FINDSTRING 0x014c
SELECTSTRING 0x014d
SETCURSEL 0x014e
SHOWDROPDOWN 0x014f
GETITEMDATA 0x0150
SETITEMDATA 0x0151
GETDROPPEDCONTROLRECT 0x0152
SETITEMHEIGHT 0x0153
GETITEMHEIGHT 0x0154
SETEXTENDEDUI 0x0155
GETEXTENDEDUI 0x0156
GETDROPPEDSTATE 0x0157
FINDSTRINGEXACT 0x0158
SETLOCALE 0x0159
GETLOCALE 0x015a
GETTOPINDEX 0x015b
SETTOPINDEX 0x015c
GETHORIZONTALEXTENT 0x015d
SETHORIZONTALEXTENT 0x015e
GETDROPPEDWIDTH 0x015f
SETDROPPEDWIDTH 0x0160
INITSTORAGE 0x0161
GETCOMBOBOXINFO 0x0164
}
const_cmd! { CBN;
/// Combo box control `WM_COMMAND`
/// [notifications](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-combobox-control-reference-notifications)
/// (`u16`).
=>
=>
ERRSPACE -1i16 as _
SELCHANGE 1
DBLCLK 2
SETFOCUS 3
KILLFOCUS 4
EDITCHANGE 5
EDITUPDATE 6
DROPDOWN 7
CLOSEUP 8
SELENDOK 9
SELENDCANCEL 10
}
const_ws! { CBS: u32;
/// Combo box control
/// [styles](https://learn.microsoft.com/en-us/windows/win32/controls/combo-box-styles)
/// (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
SIMPLE 0x0001
DROPDOWN 0x0002
DROPDOWNLIST 0x0003
OWNERDRAWFIXED 0x0010
OWNERDRAWVARIABLE 0x0020
AUTOHSCROLL 0x0040
OEMCONVERT 0x0080
SORT 0x0100
HASSTRINGS 0x0200
NOINTEGRALHEIGHT 0x0400
DISABLENOSCROLL 0x0800
UPPERCASE 0x2000
LOWERCASE 0x4000
}
const_bitflag! { CC: u32;
/// [`CHOOSECOLOR`](crate::CHOOSECOLOR) `Flags` (`u32`).
=>
=>
/// Causes the dialog box to use the color specified in the `rgbResult`
/// member as the initial color selection.
RGBINIT 0x0000_0001
/// Causes the dialog box to display the additional controls that allow the
/// user to create custom colors. If this flag is not set the user must
/// click the Define Custom Color button to display the custom color
/// controls.
FULLOPEN 0x0000_0002
/// Disables the Define Custom Color button.
PREVENTFULLOPEN 0x0000_0004
/// Causes the dialog box to display the Help button. The `hwndOwner` member
/// must specify the window to receive the `HELPMSGSTRING` registered
/// messages that the dialog box sends when the user clicks the Help button.
SHOWHELP 0x0000_0008
/// Enables the hook procedure specified in the `lpfnHook` member of this
/// structure. This flag is used only to initialize the dialog box.
ENABLEHOOK 0x0000_0010
/// The `hInstance` and `lpTemplateName` members specify a dialog box
/// template to use in place of the default template. This flag is used only
/// to initialize the dialog box.
ENABLETEMPLATE 0x0000_0020
/// The `hInstance` member identifies a data block that contains a preloaded
/// dialog box template. The system ignores the `lpTemplateName` member if
/// this flag is specified. This flag is used only to initialize the dialog
/// box.
ENABLETEMPLATEHANDLE 0x0000_0040
/// Causes the dialog box to display only solid colors in the set of basic
/// colors.
SOLIDCOLOR 0x0000_0080
/// Causes the dialog box to display all available colors in the set of
/// basic colors.
ANYCOLOR 0x0000_0100
}
const_bitflag! { CDS: u32;
/// [`ChangeDisplaySettings`](crate::ChangeDisplaySettings) `flags` (`u32`).
=>
=>
DISABLE_UNSAFE_MODES 0x0000_0200
DYNAMICALLY 0
ENABLE_UNSAFE_MODES 0x0000_0100
FULLSCREEN 0x0000_0004
GLOBAL 0x0000_0008
NORESET 0x1000_0000
RESET 0x40000_000
SET_PRIMARY 0x0000_0010
TEST 0x0000_0002
UPDATEREGISTRY 0x0000_0001
VIDEOPARAMETERS 0x0000_0020
}
const_ordinary! { CF: u16;
/// Standard clipboard
/// [formats](https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats)
/// (`u16`).
=>
=>
TEXT 1
BITMAP 2
METAFILEPICT 3
SYLK 4
DIF 5
TIFF 6
OEMTEXT 7
DIB 8
PALETTE 9
PENDATA 10
RIFF 11
WAVE 12
UNICODETEXT 13
ENHMETAFILE 14
HDROP 15
LOCALE 16
DIBV5 17
OWNERDISPLAY 0x0080
DSPTEXT 0x0081
DSPBITMAP 0x0082
DSPMETAFILEPICT 0x0083
DSPENHMETAFILE 0x008e
PRIVATEFIRST 0x0200
PRIVATELAST 0x02ff
GDIOBJFIRST 0x0300
GDIOBJLAST 0x03ff
}
const_ordinary! { COLOR: i32;
/// System
/// [colors](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsyscolor)
/// (`i32`).
=>
=>
SCROLLBAR 0
BACKGROUND 1
ACTIVECAPTION 2
INACTIVECAPTION 3
MENU 4
WINDOW 5
WINDOWFRAME 6
MENUTEXT 7
WINDOWTEXT 8
CAPTIONTEXT 9
ACTIVEBORDER 10
INACTIVEBORDER 11
APPWORKSPACE 12
HIGHLIGHT 13
HIGHLIGHTTEXT 14
BTNFACE 15
BTNSHADOW 16
GRAYTEXT 17
BTNTEXT 18
INACTIVECAPTIONTEXT 19
BTNHIGHLIGHT 20
C3DDKSHADOW 21
C3DLIGHT 22
INFOTEXT 23
INFOBK 24
HOTLIGHT 26
GRADIENTACTIVECAPTION 27
GRADIENTINACTIVECAPTION 28
MENUHILIGHT 29
MENUBAR 30
DESKTOP Self::BACKGROUND.0
C3DFACE Self::BTNFACE.0
C3DSHADOW Self::BTNSHADOW.0
C3DHIGHLIGHT Self::BTNHIGHLIGHT.0
C3DHILIGHT Self::BTNHIGHLIGHT.0
BTNHILIGHT Self::BTNHIGHLIGHT.0
}
const_ordinary! { CLR: u32;
/// [`IMAGELISTDRAWPARAMS`](crate::IMAGELISTDRAWPARAMS) `rgbFg` (`u32`).
=>
=>
NONE 0xffff_ffff
DEFAULT 0xff00_0000
}
const_ordinary! { CMD: u16;
/// [`wm::Command`](crate::msg::wm::Command) notification codes (`u16`).
///
/// **Note:** Control-specific notification codes have their own types,
/// which are convertible to `CMD`.
=>
=>
Menu 0
Accelerator 1
}
const_bitflag! { CS: u32;
/// Window class
/// [`styles`](https://learn.microsoft.com/en-us/windows/win32/winmsg/window-class-styles)
/// (`u32`).
=>
=>
VREDRAW 0x0001
HREDRAW 0x0002
DBLCLKS 0x0008
OWNDC 0x0020
CLASSDC 0x0040
PARENTDC 0x0080
NOCLOSE 0x0200
SAVEBITS 0x0800
BYTEALIGNCLIENT 0x1000
BYTEALIGNWINDOW 0x2000
GLOBALCLASS 0x4000
IME 0x00010000
DROPSHADOW 0x00020000
}
const_bitflag! { CURSOR: u32;
/// [`CURSORINFO`](crate::CURSORINFO) `flags` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
SHOWING 0x0000_0001
SUPPRESSED 0x0000_0002
}
const_bitflag! { DC: u32;
/// [`HWND::DrawCaption`](crate::prelude::user_Hwnd::DrawCaption) `flags`
/// (`u32`).
=>
=>
ACTIVE 0x0001
SMALLCAP 0x0002
ICON 0x0004
TEXT 0x0008
INBUTTON 0x0010
GRADIENT 0x0020
BUTTONS 0x1000
}
const_ordinary! { DDC: u32;
/// [`DIALOG_DPI_CHANGE_BEHAVIORS`](https://learn.microsoft.com/en-us/windows/win32/api/winuser/ne-winuser-dialog_dpi_change_behaviors)
/// enumeration (`u32`).
=>
=>
DEFAULT 0x0000
DISABLE_ALL 0x0001
DISABLE_RESIZE 0x0002
DISABLE_CONTROL_RELAYOUT 0x0004
}
const_bitflag! { DDL: u16;
/// [`cb::Dir`](crate::msg::cb::Dir) and [`lb::Dir`](crate::msg::lb::Dir)
/// attributes (`u16`).
=>
=>
READWRITE 0x0000
READONLY 0x0001
HIDDEN 0x0002
SYSTEM 0x0004
DIRECTORY 0x0010
ARCHIVE 0x0020
POSTMSGS 0x2000
DRIVES 0x4000
EXCLUSIVE 0x8000
}
const_bitflag! { DESKTOP_RIGHTS: u32;
/// Desktop security and access rights
/// [flags](https://learn.microsoft.com/en-us/windows/win32/winstation/desktop-security-and-access-rights)
/// (`u32`).
///
/// Originally aglutinates [`co::ACCESS_RIGHTS`](crate::co::ACCESS_RIGHTS)
/// and specific constants with `DESKTOP` prefix.
=>
=>
DELETE ACCESS_RIGHTS::DELETE.raw()
READ_CONTROL ACCESS_RIGHTS::READ_CONTROL.raw()
WRITE_DAC ACCESS_RIGHTS::WRITE_DAC.raw()
WRITE_OWNER ACCESS_RIGHTS::WRITE_OWNER.raw()
SYNCHRONIZE ACCESS_RIGHTS::SYNCHRONIZE.raw()
READOBJECTS 0x0001
CREATEWINDOW 0x0002
CREATEMENU 0x0004
HOOKCONTROL 0x0008
JOURNALRECORD 0x0010
JOURNALPLAYBACK 0x0020
ENUMERATE 0x0040
WRITEOBJECTS 0x0080
SWITCHDESKTOP 0x0100
GENERIC_READ Self::ENUMERATE.0 | Self::READOBJECTS.0 | STANDARD_RIGHTS::READ.raw()
GENERIC_WRITE Self::CREATEMENU.0 | Self::CREATEWINDOW.0 | Self::HOOKCONTROL.0 | Self::JOURNALPLAYBACK.0 | Self::JOURNALRECORD.0 | Self::WRITEOBJECTS.0 | STANDARD_RIGHTS::WRITE.raw()
GENERICE_EXECUTE Self::SWITCHDESKTOP.0 | STANDARD_RIGHTS::EXECUTE.raw()
GENERIC_ALL Self::CREATEMENU.0 | Self::CREATEWINDOW.0 | Self::ENUMERATE.0 | Self::HOOKCONTROL.0 | Self::JOURNALPLAYBACK.0 | Self::JOURNALRECORD.0 | Self::READOBJECTS.0 | Self::SWITCHDESKTOP.0 | Self::WRITEOBJECTS.0 | STANDARD_RIGHTS::REQUIRED.raw()
}
const_ordinary! { DF: u32;
/// [`HDESK::OpenDesktop`](crate::prelude::user_Hdesk::OpenDesktop) `flags`
/// (`u32`).
=>
=>
ALLOWOTHERACCOUNTHOOK 0x0001
}
const_ordinary! { DISP_CHANGE: i32;
/// [`ChangeDisplaySettings`](crate::ChangeDisplaySettings) return value
/// (`u32`).
=>
=>
SUCCESSFUL 0
RESTART 1
FAILED -1
BADMODE -2
NOTUPDATED -3
BADFLAGS -4
BADPARAM -5
BADDUALVIEW -6
}
const_bitflag! { DISPLAY_DEVICE: u32;
/// [`DISPLAY_DEVICE`](crate::DISPLAY_DEVICE) `StateFlags` (`u32`).
=>
=>
ATTACHED_TO_DESKTOP 0x0000_0001
MULTI_DRIVER 0x0000_0002
PRIMARY_DEVICE 0x0000_0004
MIRRORING_DRIVER 0x0000_0008
VGA_COMPATIBLE 0x0000_0010
REMOVABLE 0x0000_0020
ACC_DRIVER 0x0000_0040
MODESPRUNED 0x0800_0000
RDPUDD 0x0100_0000
REMOTE 0x0400_0000
DISCONNECT 0x0200_0000
TS_COMPATIBLE 0x0020_0000
UNSAFE_MODES_ON 0x0008_0000
}
const_bitflag! { DM: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmFields` (`u32`).
=>
=>
ORIENTATION 0x0000_0001
PAPERSIZE 0x0000_0002
PAPERLENGTH 0x0000_0004
PAPERWIDTH 0x0000_0008
SCALE 0x0000_0010
POSITION 0x0000_0020
NUP 0x0000_0040
DISPLAYORIENTATION 0x0000_0080
COPIES 0x0000_0100
DEFAULTSOURCE 0x0000_0200
PRINTQUALITY 0x0000_0400
COLOR 0x0000_0800
DUPLEX 0x0000_1000
YRESOLUTION 0x0000_2000
TTOPTION 0x0000_4000
COLLATE 0x0000_8000
FORMNAME 0x0001_0000
LOGPIXELS 0x0002_0000
BITSPERPEL 0x0004_0000
PELSWIDTH 0x0008_0000
PELSHEIGHT 0x0010_0000
DISPLAYFLAGS 0x0020_0000
DISPLAYFREQUENCY 0x0040_0000
ICMMETHOD 0x0080_0000
ICMINTENT 0x0100_0000
MEDIATYPE 0x0200_0000
DITHERTYPE 0x0400_0000
PANNINGWIDTH 0x0800_0000
PANNINGHEIGHT 0x1000_0000
DISPLAYFIXEDOUTPUT 0x2000_0000
}
const_ordinary! { DMBIN: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmDefaultSource` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
UPPER 1
ONLYONE 1
LOWER 2
MIDDLE 3
MANUAL 4
ENVELOPE 5
ENVMANUAL 6
AUTO 7
TRACTOR 8
SMALLFMT 9
LARGEFMT 10
LARGECAPACITY 11
CASSETTE 14
FORMSOURCE 15
LAST Self::FORMSOURCE.0
/// Device-specific bins start here.
USER 256
}
const_ordinary! { DMCOLOR: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmColor` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
MONOCHROME 1
COLOR 2
}
const_ordinary! { DMDFO: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmDisplayFixedOutput` (`u32`).
=>
=>
DEFAULT 0
STRETCH 1
CENTER 2
}
const_bitflag! { DMDISPLAYFLAGS: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmDisplayFlags` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
INTERLACED 0x0000_0002
TEXTMODE 0x0000_0004
}
const_ordinary! { DMDITHER: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmDitherType` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// No dithering.
NONE 1
/// Dither with a coarse brush.
COARSE 2
/// Dither with a fine brush.
FINE 3
/// LineArt dithering.
LINEART 4
/// LineArt dithering.
ERRORDIFFUSION 5
/// LineArt dithering.
RESERVED6 6
/// LineArt dithering.
RESERVED7 7
/// LineArt dithering.
RESERVED8 8
/// LineArt dithering.
RESERVED9 9
/// Device does grayscaling.
GRAYSCALE 10
/// Device-specific dithers start here.
USER 256
}
const_ordinary! { DMDO: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmDisplayOrientation` (`u32`).
=>
=>
DEFAULT 0
D90 1
D180 2
D270 3
}
const_ordinary! { DMDUP: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmDuplex` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
SIMPLEX 1
VERTICAL 2
HORIZONTAL 3
}
const_ordinary! { DMICM: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmICMIntent` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Maximize color saturation.
SATURATE 1
/// Maximize color contrast.
CONTRAST 2
/// Use specific color metric.
COLORIMETRIC 3
/// Use specific color metric.
ABS_COLORIMETRIC 4
/// Device-specific intents start here.
USER 256
}
const_ordinary! { DMICMMETHOD: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmICMMethod` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// ICM disabled.
NONE 1
/// ICM handled by system.
SYSTEM 2
/// ICM handled by driver.
DRIVER 3
/// ICM handled by device.
DEVICE 4
/// Device-specific intents start here.
USER 256
}
const_ordinary! { DMMEDIA: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmMediaType` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Standard paper.
STANDARD 1
/// Transparency.
TRANSPARENCY 2
/// Glossy paper.
GLOSSY 3
/// Device-specific media start here.
USER 256
}
const_ordinary! { DMNUP: u32;
/// [`DEVMODE`](crate::DEVMODE) `dmNup` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
SYSTEM 1
ONEUP 2
}
const_ordinary! { DMORIENT: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmOrientation` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
PORTRAIT 1
LANDSCAPE 2
}
const_ordinary! { DMPAPER: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmPaperSize` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Letter 8 1/2 x 11 in.
LETTER 1
/// Letter Small 8 1/2 x 11 in.
LETTERSMALL 2
/// Tabloid 11 x 17 in.
TABLOID 3
/// Ledger 17 x 11 in.
LEDGER 4
/// Legal 8 1/2 x 14 in.
LEGAL 5
/// Statement 5 1/2 x 8 1/2 in.
STATEMENT 6
/// Executive 7 1/4 x 10 1/2 in.
EXECUTIVE 7
/// A3 297 x 420 mm.
A3 8
/// A4 210 x 297 mm.
A4 9
/// A4 Small 210 x 297 mm.
A4SMALL 10
/// A5 148 x 210 mm.
A5 11
/// B4 (JIS) 250 x 354.
B4 12
/// B5 (JIS) 182 x 257 mm.
B5 13
/// Folio 8 1/2 x 13 in.
FOLIO 14
/// Quarto 215 x 275 mm.
QUARTO 15
/// 10x14 in.
P10X14 16
/// 11x17 in.
P11X17 17
/// Note 8 1/2 x 11 in.
NOTE 18
/// Envelope #9 3 7/8 x 8 7/8.
ENV_9 19
/// Envelope #10 4 1/8 x 9 1/2.
ENV_10 20
/// Envelope #11 4 1/2 x 10 3/8.
ENV_11 21
/// Envelope #12 4 \276 x 11.
ENV_12 22
/// Envelope #14 5 x 11 1/2.
ENV_14 23
/// C size sheet.
CSHEET 24
/// D size sheet.
DSHEET 25
/// E size sheet.
ESHEET 26
/// Envelope DL 110 x 220mm.
ENV_DL 27
/// Envelope C5 162 x 229 mm.
ENV_C5 28
/// Envelope C3 324 x 458 mm.
ENV_C3 29
/// Envelope C4 229 x 324 mm.
ENV_C4 30
/// Envelope C6 114 x 162 mm.
ENV_C6 31
/// Envelope C65 114 x 229 mm.
ENV_C65 32
/// Envelope B4 250 x 353 mm.
ENV_B4 33
/// Envelope B5 176 x 250 mm.
ENV_B5 34
/// Envelope B6 176 x 125 mm.
ENV_B6 35
/// Envelope 110 x 230 mm.
ENV_ITALY 36
/// Envelope Monarch 3.875 x 7.5 in.
ENV_MONARCH 37
/// 6 3/4 Envelope 3 5/8 x 6 1/2 in.
ENV_PERSONAL 38
/// US Std Fanfold 14 7/8 x 11 in.
FANFOLD_US 39
/// German Std Fanfold 8 1/2 x 12 in.
FANFOLD_STD_GERMAN 40
/// German Legal Fanfold 8 1/2 x 13 in.
FANFOLD_LGL_GERMAN 41
/// B4 (ISO) 250 x 353 mm.
ISO_B4 42
/// Japanese Postcard 100 x 148 mm.
JAPANESE_POSTCARD 43
/// 9 x 11 in.
P9X11 44
/// 10 x 11 in.
P10X11 45
/// 15 x 11 in.
P15X11 46
/// Envelope Invite 220 x 220 mm.
ENV_INVITE 47
/// Letter Extra 9 275 x 12 in.
LETTER_EXTRA 50
/// Legal Extra 9 275 x 15 in.
LEGAL_EXTRA 51
/// Tabloid Extra 11.69 x 18 in.
TABLOID_EXTRA 52
/// A4 Extra 9.27 x 12.69 in.
A4_EXTRA 53
/// Letter Transverse 8 275 x 11 in.
LETTER_TRANSVERSE 54
/// A4 Transverse 210 x 297 mm.
A4_TRANSVERSE 55
/// Letter Extra Transverse 9\275 x 12 in.
LETTER_EXTRA_TRANSVERSE 56
/// SuperA/SuperA/A4 227 x 356 mm.
A_PLUS 57
/// SuperB/SuperB/A3 305 x 487 mm.
B_PLUS 58
/// Letter Plus 8.5 x 12.69 in.
ETTER_PLUS 59
/// A4 Plus 210 x 330 mm.
A4_PLUS 60
/// A5 Transverse 148 x 210 mm.
A5_TRANSVERSE 61
/// B5 (JIS) Transverse 182 x 257 mm.
B5_TRANSVERSE 62
/// A3 Extra 322 x 445 mm.
A3_EXTRA 63
/// A5 Extra 174 x 235 mm.
A5_EXTRA 64
/// B5 (ISO) Extra 201 x 276 mm.
B5_EXTRA 65
/// A2 420 x 594 mm.
A2 66
/// A3 Transverse 297 x 420 mm.
A3_TRANSVERSE 67
/// A3 Extra Transverse 322 x 445 mm.
A3_EXTRA_TRANSVERSE 68
/// Japanese Double Postcard 200 x 148 mm.
DBL_JAPANESE_POSTCARD 69
/// A6 105 x 148 mm.
A6 70
/// Japanese Envelope Kaku #2.
JENV_KAKU2 71
/// Japanese Envelope Kaku #3.
JENV_KAKU3 72
/// Japanese Envelope Chou #3.
JENV_CHOU3 73
/// Japanese Envelope Chou #4.
JENV_CHOU4 74
/// Letter Rotated 11 x 8 1/2 11 in.
LETTER_ROTATED 75
/// A3 Rotated 420 x 297 mm.
A3_ROTATED 76
/// A4 Rotated 297 x 210 mm.
A4_ROTATED 77
/// A5 Rotated 210 x 148 mm.
A5_ROTATED 78
/// B4 (JIS) Rotated 364 x 257 mm.
B4_JIS_ROTATED 79
/// B5 (JIS) Rotated 257 x 182 mm.
B5_JIS_ROTATED 80
/// Japanese Postcard Rotated 148 x 100 mm.
JAPANESE_POSTCARD_ROTATED 81
/// Double Japanese Postcard Rotated 148 x 200 mm.
DBL_JAPANESE_POSTCARD_ROTATED 82
/// A6 Rotated 148 x 105 mm.
A6_ROTATED 83
/// Japanese Envelope Kaku #2 Rotated.
JENV_KAKU2_ROTATED 84
/// Japanese Envelope Kaku #3 Rotated.
JENV_KAKU3_ROTATED 85
/// Japanese Envelope Chou #3 Rotated.
JENV_CHOU3_ROTATED 86
/// Japanese Envelope Chou #4 Rotated.
JENV_CHOU4_ROTATED 87
/// B6 (JIS) 128 x 182 mm.
B6_JIS 88
/// B6 (JIS) Rotated 182 x 128 mm.
B6_JIS_ROTATED 89
/// 12 x 11 in.
P12X11 90
/// Japanese Envelope You #4.
JENV_YOU4 91
/// Japanese Envelope You #4 Rotated.
JENV_YOU4_ROTATED 92
/// PRC 16K 146 x 215 mm.
P16K 93
/// PRC 32K 97 x 151 mm.
P32K 94
/// PRC 32K (Big) 97 x 151 mm.
P32KBIG 95
/// PRC Envelope #1 102 x 165 mm.
PENV_1 96
/// PRC Envelope #2 102 x 176 mm.
PENV_2 97
/// PRC Envelope #3 125 x 176 mm.
PENV_3 98
/// PRC Envelope #4 110 x 208 mm.
PENV_4 99
/// PRC Envelope #5 110 x 220 mm.
PENV_5 100
/// PRC Envelope #6 120 x 230 mm.
PENV_6 101
/// PRC Envelope #7 160 x 230 mm.
PENV_7 102
/// PRC Envelope #8 120 x 309 mm.
PENV_8 103
/// PRC Envelope #9 229 x 324 mm.
PENV_9 104
/// PRC Envelope #10 324 x 458 mm.
PENV_10 105
/// PRC 16K Rotated.
P16K_ROTATED 106
/// PRC 32K Rotated.
P32K_ROTATED 107
/// PRC 32K(Big) Rotated.
P32KBIG_ROTATED 108
/// PRC Envelope #1 Rotated 165 x 102 mm.
PENV_1_ROTATED 109
/// PRC Envelope #2 Rotated 176 x 102 mm.
PENV_2_ROTATED 110
/// PRC Envelope #3 Rotated 176 x 125 mm.
PENV_3_ROTATED 111
/// PRC Envelope #4 Rotated 208 x 110 mm.
PENV_4_ROTATED 112
/// PRC Envelope #5 Rotated 220 x 110 mm.
PENV_5_ROTATED 113
/// PRC Envelope #6 Rotated 230 x 120 mm.
PENV_6_ROTATED 114
/// PRC Envelope #7 Rotated 230 x 160 mm.
PENV_7_ROTATED 115
/// PRC Envelope #8 Rotated 309 x 120 mm.
PENV_8_ROTATED 116
/// PRC Envelope #9 Rotated 324 x 229 mm.
PENV_9_ROTATED 117
/// PRC Envelope #10 Rotated 458 x 324 mm.
PENV_10_ROTATED 118
/// Other papers start here.
USER 256
}
const_ordinary! { DMRES: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmPrintQuality` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
DRAFT -1
LOW -2
MEDIUM -3
HIGH -4
}
const_ordinary! { DMTT: i16;
/// [`DEVMODE`](crate::DEVMODE) `dmTTOption` (`i16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Print TT fonts as graphics.
BITMAP 1
/// Download TT fonts as soft fonts.
DOWNLOAD 2
/// Substitude device fonts for TT fonts.
SUBDEV 3
/// Download TT fonts as outline soft fonts.
DOWNLOAD_OUTLINE 4
}
const_ordinary! { DLGC: u16;
/// [`wm::GetDlgCode`](crate::msg::wm::GetDlgCode) return value (`u16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
BUTTON 0x2000
DEFPUSHBUTTON 0x0010
HASSETSEL 0x0008
RADIOBUTTON 0x0040
STATIC 0x0100
UNDEFPUSHBUTTON 0x0020
WANTALLKEYS 0x0004
WANTARROWS 0x0001
WANTCHARS 0x0080
WANTMESSAGE 0x0004
WANTTAB 0x0002
}
const_ordinary! { DLGID: u16;
/// Dialog built-in IDs (`u16`). These are also returned from
/// [`HWND::MessageBox`](crate::prelude::user_Hwnd::MessageBox) and
/// [`HWND::TaskDialog`](crate::prelude::comctl_Hwnd::TaskDialog).
=>
=>
OK 1
CANCEL 2
ABORT 3
RETRY 4
IGNORE 5
YES 6
NO 7
TRYAGAIN 10
CONTINUE 11
}
const_ordinary! { DPI_HOSTING_BEHAVIOR: u32;
/// [`DPI_HOSTING_BEHAVIOR`](https://learn.microsoft.com/en-us/windows/win32/api/windef/ne-windef-dpi_hosting_behavior)
/// enumeration (`u32`).
=>
=>
INVALID -1i32 as _
DEFAULT 0
MIXED 1
}
const_bitflag! { DT: u32;
/// [`HDC::DrawText`](crate::prelude::user_Hdc::DrawText) `format` (`u32`).
=>
=>
TOP 0x0000_0000
LEFT 0x0000_0000
CENTER 0x0000_0001
RIGHT 0x0000_0002
VCENTER 0x0000_0004
BOTTOM 0x0000_0008
WORDBREAK 0x0000_0010
SINGLELINE 0x0000_0020
EXPANDTABS 0x0000_0040
TABSTOP 0x0000_0080
NOCLIP 0x0000_0100
EXTERNALLEADING 0x0000_0200
CALCRECT 0x0000_0400
NOPREFIX 0x0000_0800
INTERNAL 0x0000_1000
EDITCONTROL 0x0000_2000
PATH_ELLIPSIS 0x0000_4000
END_ELLIPSIS 0x0000_8000
MODIFYSTRING 0x0001_0000
RTLREADING 0x0002_0000
WORD_ELLIPSIS 0x0004_0000
NOFULLWIDTHCHARBREAK 0x0008_0000
HIDEPREFIX 0x0010_0000
PREFIXONLY 0x0020_0000
}
const_bitflag! { EC: u16;
/// [`em::GetImeStatus`](crate::msg::em::SetMargins) margins to set (`u16`).
=>
=>
LEFTMARGIN 0x0001
RIGHTMARGIN 0x0002
USEFONTINFO 0xffff
}
const_bitflag! { EDD: u32;
/// [`EnumDisplayDevices`](crate::EnumDisplayDevices) `flags` (`u32`).
=>
=>
GET_DEVICE_INTERFACE_NAME 0x0000_0001
}
const_bitflag! { EDS: u32;
/// [`EnumDisplaySettingsEx`](crate::EnumDisplaySettingsEx) `flags` (`u32`).
=>
=>
RAWMODE 0x0000_0002
ROTATEDMODE 0x0000_0004
}
const_bitflag! { EIMES: u16;
/// [`em::GetImeStatus`](crate::msg::em::GetImeStatus) and
/// [`em::SetImeStatus`](crate::msg::em::SetImeStatus) status (`u16`).
=>
=>
GETCOMPSTRATONCE 0x0001
CANCELCOMPSTRINFOCUS 0x0002
COMPLETECOMPSTRKILLFOCUS 0x0004
}
const_wm! { EM;
/// Edit control
/// [messages](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-edit-control-reference-messages)
/// (`u32`).
=>
=>
GETSEL 0x00b0
SETSEL 0x00b1
GETRECT 0x00b2
SETRECT 0x00b3
SETRECTNP 0x00b4
SCROLL 0x00b5
LINESCROLL 0x00b6
SCROLLCARET 0x00b7
GETMODIFY 0x00b8
SETMODIFY 0x00b9
GETLINECOUNT 0x00ba
LINEINDEX 0x00bb
SETHANDLE 0x00bc
GETHANDLE 0x00bd
GETTHUMB 0x00be
LINELENGTH 0x00c1
REPLACESEL 0x00c2
GETLINE 0x00c4
LIMITTEXT 0x00c5
CANUNDO 0x00c6
UNDO 0x00c7
FMTLINES 0x00c8
LINEFROMCHAR 0x00c9
SETTABSTOPS 0x00cb
SETPASSWORDCHAR 0x00cc
EMPTYUNDOBUFFER 0x00cd
GETFIRSTVISIBLELINE 0x00ce
SETREADONLY 0x00cf
SETWORDBREAKPROC 0x00d0
GETWORDBREAKPROC 0x00d1
GETPASSWORDCHAR 0x00d2
SETMARGINS 0x00d3
GETMARGINS 0x00d4
SETLIMITTEXT Self::LIMITTEXT.0
GETLIMITTEXT 0x00d5
POSFROMCHAR 0x00d6
CHARFROMPOS 0x00d7
SETIMESTATUS 0x00d8
GETIMESTATUS 0x00d9
ENABLEFEATURE 0x00da
}
const_cmd! { EN;
/// Edit control `WM_COMMAND`
/// [notifications](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-edit-control-reference-notifications)
/// (`u16`).
=>
=>
SETFOCUS 0x0100
KILLFOCUS 0x0200
CHANGE 0x0300
UPDATE 0x0400
ERRSPACE 0x0500
MAXTEXT 0x0501
HSCROLL 0x0601
VSCROLL 0x0602
ALIGN_LTR_EC 0x0700
ALIGN_RTL_EC 0x0701
BEFORE_PASTE 0x0800
AFTER_PASTE 0x0801
}
const_bitflag! { ENDSESSION: u32;
/// [`wm::EndSession`](crate::msg::wm::EndSession) event (`u32`).
=>
=>
RESTARTORSHUTDOWN 0
CLOSEAPP 0x0000_0001
CRITICAL 0x4000_0000
LOGOFF 0x8000_0000
}
const_ordinary! { ENUM_SETTINGS: u32;
/// [`EnumDisplaySettingsEx`](crate::EnumDisplaySettingsEx) `mode_num`
/// (`u32`).
///
/// Originally with `ENUM` prefix and `SETTINGS` suffix.
=>
=>
CURRENT -1i32 as u32
REGISTRY -2i32 as u32
}
const_ws! { ES: u32;
/// Edit control
/// [styles](https://learn.microsoft.com/en-us/windows/win32/controls/edit-control-styles)
/// (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Aligns text with the left margin.
LEFT 0x0000
/// Centers text in a single-line or multiline edit control.
CENTER 0x0001
/// Right-aligns text in a single-line or multiline edit control.
RIGHT 0x0002
/// Designates a multiline edit control.
MULTILINE 0x0004
/// Converts all characters to uppercase as they are typed into the edit
/// control.
UPPERCASE 0x0008
/// Converts all characters to lowercase as they are typed into the edit
/// control.
LOWERCASE 0x0010
/// Displays an asterisk (*) for each character typed into the edit control.
/// This style is valid only for single-line edit controls. To change the
/// characters that is displayed, or set or clear this style, use the
/// [`EM_SETPASSWORDCHAR`](crate::msg::em::SetPasswordChar) message.
PASSWORD 0x0020
/// Automatically scrolls text up one page when the user presses the ENTER
/// key on the last line.
AUTOVSCROLL 0x0040
/// Automatically scrolls text to the right by 10 characters when the user
/// types a character at the end of the line. When the user presses the
/// ENTER key, the control scrolls all text back to position zero.
AUTOHSCROLL 0x0080
/// Negates the default behavior for an edit control. The default behavior
/// hides the selection when the control loses the input focus and inverts
/// the selection when the control receives the input focus.
NOHIDESEL 0x0100
/// Converts text entered in the edit control. The text is converted from
/// the Windows character set to the OEM character set and then back to the
/// Windows character set. This style is most useful for edit controls that
/// contain file names that will be used on file systems that do not support
/// Unicode.
OEMCONVERT 0x0400
/// Prevents the user from typing or editing text in the edit control.
READONLY 0x0800
/// Specifies that a carriage return be inserted when the user presses the
/// ENTER key while entering text into a multiline edit control in a dialog
/// box. If you do not specify this style, pressing the ENTER key has the
/// same effect as pressing the dialog box's default push button. This style
/// has no effect on a single-line edit control.
WANTRETURN 0x1000
/// Allows only digits to be entered into the edit control. Note that, even
/// with this set, it is still possible to paste non-digits into the edit
/// control.
NUMBER 0x2000
}
const_ordinary! { ESB: u32;
/// [`HWND::EnableScrollBar`](crate::prelude::user_Hwnd::EnableScrollBar)
/// `arrows` (`u32`).
=>
=>
ENABLE_BOTH 0x0000
DISABLE_BOTH 0x0003
DISABLE_LEFT 0x0001
DISABLE_RIGHT 0x0002
DISABLE_UP 0x0001
DISABLE_DOWN 0x0002
DISABLE_LTUP Self::DISABLE_LEFT.0
DISABLE_RTDN Self::DISABLE_RIGHT.0
}
const_bitflag! { EWX: u32;
/// [`ExitWindowsEx`](crate::ExitWindowsEx) `flags` (`u32`).
=>
=>
HYBRID_SHUTDOWN 0x0040_0000
LOGOFF 0
POWEROFF 0x0000_0008
REBOOT 0x0000_0002
RESTARTAPPS 0x0000_0040
SHUTDOWN 0x0000_0001
FORCE 0x0000_0004
FORCEIFHUNG 0x0000_0010
}
const_ordinary! { FAPPCOMMAND: u16;
/// [`wm::AppCommand`](crate::msg::wm::AppCommand) input event (`u16`).
=>
=>
MOUSE 0x8000
KEY 0
OEM 0x1000
}
const_ordinary! { GA: u32;
/// [`HWND::GetAncestor`](crate::prelude::user_Hwnd::GetAncestor) `flags`
/// (`u32`).
=>
=>
/// Retrieves the parent window. This does not include the owner as it does
/// with the [`HWND::GetParent`](crate::prelude::user_Hwnd::GetParent)
/// function.
PARENT 1
/// Retrieves the root window by walking the chain of parent windows.
///
/// Returns the
/// [closest](https://groups.google.com/a/chromium.org/g/chromium-dev/c/Hirr_DkuZdw/m/N0pSoJBhAAAJ)
/// parent with [`WS::OVERLAPPED`](crate::co::WS::OVERLAPPED) or
/// [`WS::POPUP`](crate::co::WS::POPUP).
ROOT 2
/// Retrieves the owned root window by walking the chain of parent and owner
/// windows returned by
/// [`HWND::GetParent`](crate::prelude::user_Hwnd::GetParent).
///
/// Returns the
/// [furthest](https://groups.google.com/a/chromium.org/g/chromium-dev/c/Hirr_DkuZdw/m/N0pSoJBhAAAJ)
/// parent with [`WS::OVERLAPPED`](crate::co::WS::OVERLAPPED) or
/// [`WS::POPUP`](crate::co::WS::POPUP) which usually is the main
/// application window.
ROOTOWNER 3
}
const_ordinary! { GCLP: i32;
/// [`HWND::GetClassLongPtr`](crate::prelude::user_Hwnd::GetClassLongPtr)
/// `index` (`i32`).
///
/// Originally has `GCW` and `GCL` prefixes.
=>
=>
ATOM -32
CBWNDEXTRA -18
CBCLSEXTRA -20
MENUNAME -8
HBRBACKGROUND -10
HCURSOR -12
HICON -14
HMODULE -16
WNDPROC -24
HICONSM -34
}
const_bitflag! { GMDI: u32;
/// [`HMENU::GetMenuDefaultItem`](crate::prelude::user_Hmenu::GetMenuDefaultItem)
/// `flags` (`u32`).
=>
=>
USEDISABLED 0x0001
GOINTOPOPUPS 0x0002
}
const_bitflag! { GUI: u32;
/// [`GUITHREADINFO`](crate::GUITHREADINFO) `flags` (`u32`).
=>
=>
CARETBLINKING 0x0000_0001
INMENUMODE 0x0000_0004
INMOVESIZE 0x0000_0002
POPUPMENUMODE 0x0000_00010
SYSTEMMENUMODE 0x0000_0008
}
const_ordinary! { GW: u32;
/// [`HWND::GetWindow`](crate::prelude::user_Hwnd::GetWindow) `cmd` (`u32`).
=>
=>
HWNDFIRST 0
HWNDLAST 1
HWNDNEXT 2
HWNDPREV 3
OWNER 4
CHILD 5
ENABLEDPOPUP 6
MAX 6
}
const_ordinary! { GWL_C: i8;
/// [`wm::StyleChanged`](crate::msg::wm::StyleChanged) and
/// [`wm::StyleChanging`](crate::msg::wm::StyleChanging) change (`i8`).
///
/// Originally has `GWL` prefix.
=>
=>
EXSTYLE -20
STYLE -16
}
const_ordinary! { GWLP: i32;
/// [`HWND::GetWindowLongPtr`](crate::prelude::user_Hwnd::GetWindowLongPtr)
/// and
/// [`HWND::SetWindowLongPtr`](crate::prelude::user_Hwnd::SetWindowLongPtr)
/// `index` (`i32`).
///
/// Originally has prefixes `GWL`, `GWLP`, `DWL` and `DWLP`.
=>
=>
WNDPROC -4
HINSTANCE -6
HWNDPARENT -8
ID -12
STYLE -16
EXSTYLE -20
USERDATA -21
DWLP_MSGRESULT 0
DWLP_DLGPROC Self::DWLP_MSGRESULT.0 + std::mem::size_of::<isize>() as i32
DWLP_USER Self::DWLP_DLGPROC.0 + std::mem::size_of::<isize>() as i32
}
const_ordinary! { HELPINFO: i32;
/// [`HELPINFO`](crate::HELPINFO) `iContextType` (`i32`).
=>
=>
WINDOW 0x0001
MENUITEM 0x0002
}
const_ordinary! { HELPW: u32;
/// [`HWND::WinHelp`](crate::prelude::user_Hwnd::WinHelp) `uCommand`
/// (`u32`).
///
/// Originally has `HELP` prefix.
=>
=>
CONTEXT 0x0001
QUIT 0x0002
INDEX 0x0003
CONTENTS 0x0003
HELPONHELP 0x0004
SETINDEX 0x0005
SETCONTENTS 0x0005
CONTEXTPOPUP 0x0008
FORCEFILE 0x0009
KEY 0x0101
COMMAND 0x0102
PARTIALKEY 0x0105
MULTIKEY 0x0201
SETWINPOS 0x0203
CONTEXTMENU 0x000a
FINDER 0x000b
WM_HELP 0x000c
SETPOPUP_POS 0x000d
TCARD 0x8000
TCARD_DATA 0x0010
TCARD_OTHER_CALLER 0x0011
}
const_ordinary! { HT: u16;
/// [`wm::NcHitTest`](crate::msg::wm::NcHitTest),
/// [`wm::SetCursor`](crate::msg::wm::SetCursor) `hit_test` (`u16`).
=>
=>
BORDER 18
BOTTOM 15
BOTTOMLEFT 16
BOTTOMRIGHT 17
CAPTION 2
CLIENT 1
CLOSE 20
ERROR -2i16 as u16
GROWBOX 4
HELP 21
HSCROLL 6
LEFT 10
MENU 5
MAXBUTTON 9
MINBUTTON 8
NOWHERE 0
REDUCE 8
RIGHT 11
SIZE 4
SYSMENU 3
TOP 12
TOPLEFT 13
TOPRIGHT 14
TRANSPARENT 1i16 as u16
VSCROLL 7
ZOOM 9
}
const_ordinary! { HWND_PLACE: isize;
/// [`HWND::SetWindowPos`](crate::prelude::user_Hwnd::SetWindowPos)
/// `hWndInsertAfter` (`isize`).
=>
=>
TOP 0
BOTTOM 1
TOPMOST -1
NOTOPMOST -2
}
const_ordinary! { ICON_SZ: u8;
/// [`wm::SetIcon`](crate::msg::wm::SetIcon) icon size (`u8`).
///
/// Originally has `ICON` prefix.
=>
=>
SMALL 0
BIG 1
}
const_ordinary! { IDC: u32;
/// [`HINSTANCE::LoadCursor`](crate::prelude::user_Hinstance::LoadCursor)
/// `lpCursorName` (`u32`).
=>
=>
ARROW 32512
IBEAM 32513
WAIT 32514
CROSS 32515
UPARROW 32516
SIZENWSE 32642
SIZENESW 32643
SIZEWE 32644
SIZENS 32645
SIZEALL 32646
NO 32648
HAND 32649
APPSTARTING 32650
HELP 32651
PIN 32671
PERSON 32672
}
const_ordinary! { IDI: u32;
/// [`HINSTANCE::LoadIcon`](crate::prelude::user_Hinstance::LoadIcon)
/// `lpIconName` (`u32`).
=>
=>
APPLICATION 32512
HAND 32513
QUESTION 32514
EXCLAMATION 32515
ASTERISK 32516
WINLOGO 32517
SHIELD 32518
WARNING Self::EXCLAMATION.0
ERROR Self::HAND.0
INFORMATION Self::ASTERISK.0
}
const_ordinary! { IMAGE_TYPE: u8;
/// [`bm::GetImage`](crate::msg::bm::GetImage) `img_type`;
/// [`stm::GetImage`](crate::msg::stm::GetImage) `img_type` (`u8`).
///
/// Originally has `IMAGE` prefix.
=>
=>
BITMAP 0
ICON 1
CURSOR 2
ENHMETAFILE 3
}
const_ordinary! { INPUT: u32;
/// [`INPUT`](crate::INPUT) `type` (`u32`).
=>
=>
MOUSE 0
KEYBOARD 1
HARDWARE 2
}
#[cfg(target_pointer_width = "64")]
const_bitflag! { ISMEX: u32;
/// [`InSendMessageEx`](crate::InSendMessageEx) return value (`u32`).
///
/// **Note:** This constant doesn't exist in x32.
=>
=>
NOSEND 0x0000_0000
CALLBACK 0x0000_0004
NOTIFY 0x0000_0002
REPLIED 0x0000_0008
SEND 0x0000_0001
}
const_bitflag! { KEYEVENTF: u32;
/// [`KEYBDINPUT`](https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-keybdinput)
/// `dwFlags` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
EXTENDEDKEY 0x0001
KEYUP 0x0002
UNICODE 0x0004
SCANCODE 0x0008
}
const_wm! { LB;
/// List box control
/// [messages](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-list-box-control-reference-messages)
/// (`u32`).
=>
=>
ADDSTRING 0x0180
INSERTSTRING 0x0181
DELETESTRING 0x0182
SELITEMRANGEEX 0x0183
RESETCONTENT 0x0184
SETSEL 0x0185
SETCURSEL 0x0186
GETSEL 0x0187
GETCURSEL 0x0188
GETTEXT 0x0189
GETTEXTLEN 0x018a
GETCOUNT 0x018b
SELECTSTRING 0x018c
DIR 0x018d
GETTOPINDEX 0x018e
FINDSTRING 0x018f
GETSELCOUNT 0x0190
GETSELITEMS 0x0191
SETTABSTOPS 0x0192
GETHORIZONTALEXTENT 0x0193
SETHORIZONTALEXTENT 0x0194
SETCOLUMNWIDTH 0x0195
ADDFILE 0x0196
SETTOPINDEX 0x0197
GETITEMRECT 0x0198
GETITEMDATA 0x0199
SETITEMDATA 0x019a
SELITEMRANGE 0x019b
SETANCHORINDEX 0x019c
GETANCHORINDEX 0x019d
SETCARETINDEX 0x019e
GETCARETINDEX 0x019f
SETITEMHEIGHT 0x01a0
GETITEMHEIGHT 0x01a1
FINDSTRINGEXACT 0x01a2
SETLOCALE 0x01a5
GETLOCALE 0x01a6
SETCOUNT 0x01a7
INITSTORAGE 0x01a8
ITEMFROMPOINT 0x01a9
GETLISTBOXINFO 0x01b2
}
const_cmd! { LBN;
/// List box control `WM_COMMAND`
/// [notifications](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-list-box-control-reference-notifications)
/// (`u16`).
=>
=>
ERRSPACE -2i16 as _
SELCHANGE 1
DBLCLK 2
SELCANCEL 3
SETFOCUS 4
KILLFOCUS 5
}
const_ws! { LBS: u32;
/// List box control
/// [styles](https://learn.microsoft.com/en-us/windows/win32/controls/list-box-styles)
/// (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
NOTIFY 0x0001
SORT 0x0002
NOREDRAW 0x0004
MULTIPLESEL 0x0008
OWNERDRAWFIXED 0x0010
OWNERDRAWVARIABLE 0x0020
HASSTRINGS 0x0040
USETABSTOPS 0x0080
NOINTEGRALHEIGHT 0x0100
MULTICOLUMN 0x0200
WANTKEYBOARDINPUT 0x0400
EXTENDEDSEL 0x0800
DISABLENOSCROLL 0x1000
NODATA 0x2000
NOSEL 0x4000
COMBOBOX 0x8000
STANDARD Self::NOTIFY.0 | Self::SORT.0 | WS::VSCROLL.0 | WS::BORDER.0
}
const_ordinary! { LSFW: u32;
/// [`LockSetForegroundWindow`](crate::LockSetForegroundWindow) `lock_code`
/// (`u32`).
=>
=>
LOCK 1
UNLOCK 2
}
const_bitflag! { LWA: u32;
/// [`HWND::SetLayeredWindowAttributes`](crate::prelude::user_Hwnd::SetLayeredWindowAttributes)
/// `flags` (`u32`).
=>
=>
ALPHA 0x0000_0002
COLORKEY 0x0000_0001
}
const_bitflag! { MB: u32;
/// [`HWND::MessageBox`](crate::prelude::user_Hwnd::MessageBox) `flags`
/// (`u32`).
=>
=>
/// The message box contains three push buttons: Abort Retry and Ignore.
ABORTRETRYIGNORE 0x0000_0002
/// The message box contains three push buttons: Cancel Try Again,
/// Continue. Use this message box type instead of
/// [`MB::ABORTRETRYIGNORE`](crate::co::MB::ABORTRETRYIGNORE).
CANCELTRYCONTINUE 0x0000_0006
/// Adds a Help button to the message box. When the user clicks the Help
/// button or presses F1 the system sends a
/// [`wm::Help`](crate::msg::wm::Help) message to the owner.
HELP 0x0000_4000
/// The message box contains one push button: OK. This is the default.
OK 0x0000_0000
/// The message box contains two push buttons: OK and Cancel.
OKCANCEL 0x0000_0001
/// The message box contains two push buttons: Retry and Cancel.
RETRYCANCEL 0x0000_0005
/// The message box contains two push buttons: Yes and No.
YESNO 0x0000_0004
/// The message box contains three push buttons: Yes No and Cancel.
YESNOCANCEL 0x0000_0003
/// An exclamation-point icon appears in the message box.
ICONEXCLAMATION 0x0000_0030
/// An exclamation-point icon appears in the message box.
ICONWARNING Self::ICONEXCLAMATION.0
/// An icon consisting of a lowercase letter i in a circle appears in the
/// message box.
ICONINFORMATION 0x0000_0040
/// An icon consisting of a lowercase letter i in a circle appears in the
/// message box.
ICONASTERISK Self::ICONINFORMATION.0
/// A question-mark icon appears in the message box. The question-mark
/// message icon is no longer recommended because it does not clearly
/// represent a specific type of message and because the phrasing of a
/// message as a question could apply to any message type. In addition,
/// users can confuse the message symbol question mark with Help
/// information. Therefore do not use this question mark message symbol in
/// your message boxes. The system continues to support its inclusion only
/// for backward compatibility.
ICONQUESTION 0x0000_0020
/// A stop-sign icon appears in the message box.
ICONSTOP Self::ICONERROR.0
/// A stop-sign icon appears in the message box.
ICONERROR 0x0000_0010
/// A stop-sign icon appears in the message box.
ICONHAND Self::ICONERROR.0
/// The first button is the default button. `MB::DEFBUTTON1` is the default
/// unless [`MB::DEFBUTTON2`](crate::co::MB::DEFBUTTON2),
/// [`MB::DEFBUTTON3`](crate::co::MB::DEFBUTTON3) or
/// [`MB::DEFBUTTON4`](crate::co::MB::DEFBUTTON4) is specified.
DEFBUTTON1 0x0000_0000
/// The second button is the default button.
DEFBUTTON2 0x0000_0100
/// The third button is the default button.
DEFBUTTON3 0x0000_0200
/// The fourth button is the default button.
DEFBUTTON4 0x0000_0300
/// The user must respond to the message box before continuing work in the
/// window identified by the hWnd parameter. However the user can move to
/// the windows of other threads and work in those windows.
///
/// Depending on the hierarchy of windows in the application the user may
/// be able to move to other windows within the thread. All child windows of
/// the parent of the message box are automatically disabled but pop-up
/// windows are not.
///
/// `MB::APPLMODAL` is the default if neither
/// [`MB::SYSTEMMODAL`](crate::co::MB::SYSTEMMODAL) nor
/// [`MB::TASKMODAL`](crate::co::MB::TASKMODAL) is specified.
APPLMODAL 0x0000_0000
/// Same as [`MB::APPLMODAL`](crate::co::MB::APPLMODAL) except that the
/// message box has the [`WS_EX::TOPMOST`](crate::co::WS_EX::TOPMOST) style.
/// Use system-modal message boxes to notify the user of serious,
/// potentially damaging errors that require immediate attention (for
/// example running out of memory). This flag has no effect on the user's
/// ability to interact with windows other than those associated with hWnd.
SYSTEMMODAL 0x0000_1000
/// Same as [`MB::APPLMODAL`](crate::co::MB::APPLMODAL) except that all the
/// top-level windows belonging to the current thread are disabled if the
/// hWnd parameter is NULL. Use this flag when the calling application or
/// library does not have a window handle available but still needs to
/// prevent input to other windows in the calling thread without suspending
/// other threads.
TASKMODAL 0x0000_2000
/// Same as desktop of the interactive window station. For more information,
/// see
/// [Window Stations](https://learn.microsoft.com/en-us/windows/win32/winstation/window-stations).
///
/// If the current input desktop is not the default desktop,
/// [`HWND::MessageBox`](crate::prelude::user_Hwnd::MessageBox) does not
/// return until the user switches to the default desktop.
DEFAULT_DESKTOP_ONLY 0x0002_0000
/// The text is right-justified.
RIGHT 0x0008_0000
/// Displays message and caption text using right-to-left reading order on
/// Hebrew and Arabic systems.
RTLREADING 0x0010_0000
/// The message box becomes the foreground window. Internally the system
/// calls the
/// [`HWND::SetForegroundWindow`](crate::prelude::user_Hwnd::SetForegroundWindow)
/// function for the message box.
SETFOREGROUND 0x0001_0000
/// The message box is created with the
/// [`WS_EX::TOPMOST`](crate::co::WS_EX::TOPMOST) window style.
TOPMOST 0x0004_0000
/// The caller is a service notifying the user of an event. The function
/// displays a message box on the current active desktop even if there is
/// no user logged on to the computer.
///
/// Terminal Services: If the calling thread has an impersonation token the
/// function directs the message box to the session specified in the
/// impersonation token.
///
/// If this flag is set the `hWnd` parameter must be NULL. This is so that
/// the message box can appear on a desktop other than the desktop
/// corresponding to the `hWnd`.
///
/// For information on security considerations in regard to using this flag,
/// see
/// [Interactive Services](https://learn.microsoft.com/en-us/windows/win32/services/interactive-services).
/// In particular be aware that this flag can produce interactive content
/// on a locked desktop and should therefore be used for only a very limited
/// set of scenarios such as resource exhaustion.
SERVICE_NOTIFICATION 0x0020_0000
}
const_ordinary! { MDITILE: u32;
/// [`HWND::TileWindows`](crate::prelude::user_Hwnd::TileWindows) `how`
/// (`u32`).
=>
=>
MDITILE_VERTICAL 0x0000
HORIZONTAL 0x0001
SKIPDISABLED 0x0002
}
const_bitflag! { MIIM: u32;
/// [`MENUITEMINFO`](crate::MENUITEMINFO) `fMask` (`u32`).
=>
=>
BITMAP 0x0000_0080
CHECKMARKS 0x0000_0008
DATA 0x0000_0020
FTYPE 0x0000_0100
ID 0x0000_0002
STATE 0x0000_0001
STRING 0x0000_0040
SUBMENU 0x0000_0004
TYPE 0x0000_0010
}
const_bitflag! { MIM: u32;
/// [`MENUINFO`](crate::MENUINFO) `fMask` (`u32`).
=>
=>
MAXHEIGHT 0x0000_0001
BACKGROUND 0x0000_0002
HELPID 0x0000_0004
MENUDATA 0x0000_0008
STYLE 0x0000_0010
APPLYTOSUBMENUS 0x8000_0000
}
const_bitflag! { MK: u16;
/// [`wm::LButtonDown`](crate::msg::wm::LButtonDown) (and similar) virtual
/// keys (`u16`).
=>
=>
LBUTTON 0x0001
RBUTTON 0x0002
SHIFT 0x0004
CONTROL 0x0008
MBUTTON 0x0010
XBUTTON1 0x0020
XBUTTON2 0x0040
ALT 0x20 // from oleidl.h
}
const_bitflag! { MF: u32;
/// [`HMENU::AppendMenu`](crate::prelude::user_Hmenu::AppendMenu) `flags`,
/// [`HMENU::GetMenuState`](crate::prelude::user_Hmenu::GetMenuState) return
/// value,
/// [`HWND::HiliteMenuItem`](crate::prelude::user_Hwnd::HiliteMenuItem)
/// `hilite` (`u32`).
=>
=>
INSERT 0x0000_0000
CHANGE 0x0000_0080
APPEND 0x0000_0100
DELETE 0x0000_0200
REMOVE 0x0000_1000
BYCOMMAND 0x0000_0000
BYPOSITION 0x0000_0400
SEPARATOR 0x0000_0800
ENABLED 0x0000_0000
GRAYED 0x0000_0001
DISABLED 0x0000_0002
UNCHECKED 0x0000_0000
CHECKED 0x0000_0008
USECHECKBITMAPS 0x0000_0200
STRING 0x0000_0000
BITMAP 0x0000_0004
OWNERDRAW 0x0000_0100
POPUP 0x0000_0010
MENUBARBREAK 0x0000_0020
MENUBREAK 0x0000_0040
UNHILITE 0x0000_0000
HILITE 0x0000_0080
DEFAULT 0x0000_1000
SYSMENU 0x0000_2000
HELP 0x0000_4000
RIGHTJUSTIFY 0x0000_4000
MOUSESELECT 0x0000_8000
}
const_bitflag! { MFS: u32;
/// [`MENUITEMINFO`](crate::MENUITEMINFO) `fState` (`u32`).
=>
=>
GRAYED 0x0000_0003
DISABLED MFS::GRAYED.0
CHECKED MF::CHECKED.0
HILITE MF::HILITE.0
ENABLED MF::ENABLED.0
UNCHECKED MF::UNCHECKED.0
UNHILITE MF::UNHILITE.0
DEFAULT MF::DEFAULT.0
}
const_bitflag! { MFT: u32;
/// [`MENUITEMINFO`](crate::MENUITEMINFO) `fType` (`u32`).
=>
=>
STRING MF::STRING.0
BITMAP MF::BITMAP.0
MENUBARBREAK MF::MENUBARBREAK.0
MENUBREAK MF::MENUBREAK.0
OWNERDRAW MF::OWNERDRAW.0
RADIOCHECK 0x0000_0200
SEPARATOR MF::SEPARATOR.0
RIGHTORDER 0x0000_2000
RIGHTJUSTIFY MF::RIGHTJUSTIFY.0
}
const_ordinary! { MND: u8;
/// [`wm::MenuDrag`](crate::msg::wm::MenuDrag) return value (`u8`).
=>
=>
CONTINUE 0
ENDMENU 1
}
const_bitflag! { MNS: u32;
/// [`MENUINFO`](crate::MENUINFO) `dwStyle` (`u32`).
=>
=>
NOCHECK 0x8000_0000
MODELESS 0x4000_0000
DRAGDROP 0x2000_0000
AUTODISMISS 0x1000_0000
NOTIFYBYPOS 0x0800_0000
CHECKORBMP 0x0400_0000
}
const_bitflag! { MOD: u16;
/// [`RegisterHotKey`](crate::prelude::user_Hwnd::RegisterHotKey) modifiers
/// (`u16`).
=>
=>
ALT 0x0001
CONTROL 0x0002
NOREPEAT 0x4000
SHIFT 0x0004
WIN 0x0008
}
const_ordinary! { MONITOR: u32;
/// [`HMONITOR::MonitorFromPoint`](crate::prelude::user_Hmonitor::MonitorFromPoint),
/// [`HMONITOR::MonitorFromRect`](crate::prelude::user_Hmonitor::MonitorFromRect),
/// [`HWND::MonitorFromWindow`](crate::prelude::user_Hwnd::MonitorFromWindow)
/// flags (`u32`).
=>
=>
DEFAULTTONULL 0x0000_0000
DEFAULTTOPRIMARY 0x0000_0001
DEFAULTTONEAREST 0x0000_0002
}
const_ordinary! { MONITORINFOF: u32;
/// [`MONITORINFOEX`](crate::MONITORINFOEX) `dwFlags` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
PRIMARY 0x0000_0001
}
const_bitflag! { MOUSEEVENTF: u32;
/// [`MOUSEINPUT`](https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-mouseinput)
/// `dwFlags` (`u32`).
=>
=>
MOVE 0x0001
LEFTDOWN 0x0002
LEFTUP 0x0004
RIGHTDOWN 0x0008
RIGHTUP 0x0010
MIDDLEDOWN 0x0020
MIDDLEUP 0x0040
XDOWN 0x0080
XUP 0x0100
WHEEL 0x0800
HWHEEL 0x01000
MOVE_NOCOALESCE 0x2000
VIRTUALDESK 0x4000
ABSOLUTE 0x8000
}
const_ordinary! { MSGF: u8;
/// [`wm::EnterIdle`](crate::msg::wm::EnterIdle) reason (`u8`).
=>
=>
DIALOGBOX 0
MENU 2
}
const_ordinary! { OBJID: u32;
/// [`HWND::GetMenuBarInfo`](crate::prelude::user_Hwnd::GetMenuBarInfo)
/// `idObject` (`i32`).
=>
=>
CLIENT 0xffff_fffc
MENU 0xffff_fffd
SYSMENU 0xffff_ffff
}
const_ordinary! { OBM: u32;
/// [`HINSTANCE::LoadImageBitmap`](crate::prelude::gdi_Hinstance::LoadImageBitmap)
/// OEM image identifier (`u32`).
=>
=>
CLOSE 32754
UPARROW 32753
DNARROW 32752
RGARROW 32751
LFARROW 32750
REDUCE 32749
ZOOM 32748
RESTORE 32747
REDUCED 32746
ZOOMD 32745
RESTORED 32744
UPARROWD 32743
DNARROWD 32742
RGARROWD 32741
LFARROWD 32740
MNARROW 32739
COMBO 32738
UPARROWI 32737
DNARROWI 32736
RGARROWI 32735
LFARROWI 32734
OLD_CLOSE 32767
SIZE 32766
OLD_UPARROW 32765
OLD_DNARROW 32764
OLD_RGARROW 32763
OLD_LFARROW 32762
BTSIZE 32761
CHECK 32760
CHECKBOXES 32759
BTNCORNERS 32758
OLD_REDUCE 32757
OLD_ZOOM 32756
OLD_RESTORE 32755
}
const_ordinary! { OCR: u32;
/// [`HINSTANCE::LoadImageCursor`](crate::prelude::gdi_Hinstance::LoadImageCursor)
/// and
/// [`HCURSOR::SetSystemCursor`](crate::prelude::user_Hcursor::SetSystemCursor)
/// OEM cursor identifier (`u32`).
=>
=>
NORMAL 32512
IBEAM 32513
WAIT 32514
CROSS 32515
UP 32516
SIZENWSE 32642
SIZENESW 32643
SIZEWE 32644
SIZENS 32645
SIZEALL 32646
WINLOGO 32517
NO 32648
HAND 32649
APPSTARTING 32650
HELP 32651
}
const_bitflag! { ODA: u32;
/// [`DRAWITEMSTRUCT`](crate::DRAWITEMSTRUCT) `itemAction` (`u32`).
=>
=>
DRAWENTIRE 0x0001
SELECT 0x0002
FOCUS 0x0004
}
const_bitflag! { ODS: u32;
/// [`DRAWITEMSTRUCT`](crate::DRAWITEMSTRUCT) `itemState` (`u32`).
=>
=>
SELECTED 0x0001
GRAYED 0x0002
DISABLED 0x0004
CHECKED 0x0008
FOCUS 0x0010
DEFAULT 0x0020
COMBOBOXEDIT 0x1000
HOTLIGHT 0x0040
INACTIVE 0x0080
NOACCEL 0x0100
NOFOCUSRECT 0x0200
}
const_ordinary! { ODT: u32;
/// [`DRAWITEMSTRUCT`](crate::DRAWITEMSTRUCT) `CtlType` (`u32`).
=>
=>
MENU 1
LISTBOX 2
COMBOBOX 3
BUTTON 4
STATIC 5
TAB 101
LISTVIEW 102
}
const_ordinary! { ODT_C: u32;
/// [`COMPAREITEMSTRUCT`](crate::COMPAREITEMSTRUCT) and
/// [`DELETEITEMSTRUCT`](crate::DELETEITEMSTRUCT) `CtlType` (`u32`).
///
/// Originally has `ODT` prefix.
=>
=>
LISTBOX ODT::LISTBOX.0
COMBOBOX ODT::COMBOBOX.0
}
const_ordinary! { OIC: u32;
/// [`HINSTANCE::LoadImageIcon`](crate::prelude::gdi_Hinstance::LoadImageIcon)
/// OEM icon identifier (`u32`).
=>
=>
SAMPLE 32512
HAND 32513
QUES 32514
BANG 32515
NOTE 32516
WINLOGO 32517
WARNING Self::BANG.0
ERROR Self::HAND.0
INFORMATION Self::NOTE.0
SHIELD 32518
}
const_bitflag! { PM: u32;
/// [`PeekMessage`](crate::PeekMessage) `remove_msg` (`u32`).
=>
=>
NOREMOVE 0x0000
REMOVE 0x0001
NOYIELD 0x0002
QS_INPUT QS::INPUT.0 << 16
QS_POSTMESSAGE (QS::POSTMESSAGE.0 | QS::HOTKEY.0 | QS::TIMER.0) << 16
QS_PAINT QS::PAINT.0 << 16
QS_SENDMESSAGE QS::SENDMESSAGE.0 << 16
}
const_bitflag! { QS: u32;
/// [`GetQueueStatus`](crate::GetQueueStatus) `flags` (`u32`).
=>
=>
KEY 0x0001
MOUSEMOVE 0x0002
MOUSEBUTTON 0x0004
POSTMESSAGE 0x0008
TIMER 0x0010
PAINT 0x0020
SENDMESSAGE 0x0040
HOTKEY 0x0080
ALLPOSTMESSAGE 0x0100
RAWINPUT 0x0400
TOUCH 0x0800
POINTER 0x1000
MOUSE Self::MOUSEMOVE.0 | Self::MOUSEBUTTON.0
INPUT Self::MOUSE.0 | Self::KEY.0 | Self::RAWINPUT.0 | Self::TOUCH.0 | Self::POINTER.0
ALLINPUT Self::INPUT.0 | Self::POSTMESSAGE.0 | Self::TIMER.0 | Self::PAINT.0 | Self::HOTKEY.0 | Self::SENDMESSAGE.0
}
const_bitflag! { RDW: u32;
/// [`HWND::RedrawWindow`](crate::prelude::user_Hwnd::RedrawWindow) `flags`
/// (`u32`).
=>
=>
INVALIDATE 0x0001
INTERNALPAINT 0x0002
ERASE 0x0004
VALIDATE 0x0008
NOINTERNALPAINT 0x0010
NOERASE 0x0020
NOCHILDREN 0x0040
ALLCHILDREN 0x0080
UPDATENOW 0x0100
ERASENOW 0x0200
FRAME 0x0400
NOFRAME 0x0800
}
const_ordinary! { REGION: i32;
/// [`HWND::GetUpdateRgn`](crate::prelude::user_Hwnd::GetUpdateRgn),
/// [`HWND::GetWindowRgn`](crate::prelude::user_Hwnd::GetWindowRgn) and
/// [`HDC::SelectObject`](crate::prelude::gdi_Hdc::SelectObject) return
/// value (`i32`).
=>
=>
NULL 1
SIMPLE 2
COMPLEX 3
}
const_ordinary! { SB_EM: u16;
/// [`em::Scroll`](crate::msg::em::Scroll) action.
///
/// Originally has `SB` prefix.
=>
=>
LINEUP 0
LINEDOWN 1
PAGEUP 2
PAGEDOWN 3
}
const_ordinary! { SB_REQ: u16;
/// [`wm::HScroll`](crate::msg::wm::HScroll) and
/// [`wm::VScroll`](crate::msg::wm::VScroll) request (`u16`).
///
/// Originally has `SB` prefix.
=>
=>
LINEUP 0
LINELEFT 0
LINEDOWN 1
LINERIGHT 1
PAGEUP 2
PAGELEFT 2
PAGEDOWN 3
PAGERIGHT 3
THUMBPOSITION 4
THUMBTRACK 5
TOP 6
LEFT 6
BOTTOM 7
RIGHT 7
ENDSCROLL 8
}
const_ordinary! { SBB: i32;
/// [`HWND::EnableScrollBar`](crate::prelude::user_Hwnd::EnableScrollBar),
/// [`HWND::GetScrollInfo`](crate::prelude::user_Hwnd::GetScrollInfo),
/// [`HWND::SetScrollInfo`](crate::prelude::user_Hwnd::SetScrollInfo) and
/// [`HWND::SetScrollRange`](crate::prelude::user_Hwnd::SetScrollRange)
/// `bar` (`i32`).
///
/// Originally has `SB` prefix.
=>
=>
HORZ 0
VERT 1
CTL 2
BOTH 3
}
const_ordinary! { SC: u32;
/// [`wm::SysCommand`](crate::msg::wm::SysCommand) type of system command
/// requested (`u32`).
=>
=>
CLOSE 0xf060
CONTEXTHELP 0xf180
DEFAULT 0xf160
HOTKEY 0xf150
HSCROLL 0xf080
ISSECURE 0x0000_0001
KEYMENU 0xf100
MAXIMIZE 0xf030
MINIMIZE 0xf020
MONITORPOWER 0xf170
MOUSEMENU 0xf090
MOVE 0xf010
NEXTWINDOW 0xf040
PREVWINDOW 0xf050
RESTORE 0xf120
SCREENSAVE 0xf140
SIZE 0xf000
TASKLIST 0xf130
VSCROLL 0xf070
}
const_bitflag! { SCROLLW: u32;
/// [`ScrollWindowEx`](crate::prelude::user_Hwnd::ScrollWindowEx) `flags`
/// (`u32`).
///
/// Originally has `SW` prefix.
=>
=>
/// None of the actual values (zero).
NoValue 0
SCROLLCHILDREN 0x0001
INVALIDATE 0x0002
ERASE 0x0004
SMOOTHSCROLL 0x0010
}
const_bitflag! { SIF: u32;
/// [`SCROLLINFO`](crate::SCROLLINFO) `fMask` (`u32`).
=>
=>
RANGE 0x0001
PAGE 0x0002
POS 0x0004
DISABLENOSCROLL 0x0008
TRACKPOS 0x0010
ALL Self::RANGE.0 | Self::PAGE.0 | Self::POS.0 | Self::TRACKPOS.0
}
const_ordinary! { SIZE_R: u8;
/// [`wm::Size`](crate::msg::wm::Size) request (`u8`).
=>
=>
/// The window has been resized but neither the `SIZE_R::MINIMIZED` nor
/// `SIZE_R::MAXIMIZED` value applies.
RESTORED 0
/// The window has been minimized.
MINIMIZED 1
/// The window has been maximized.
MAXIMIZED 2
/// Message is sent to all pop-up windows when some other window has been
/// restored to its former size.
MAXSHOW 3
/// Message is sent to all pop-up windows when some other window is
/// maximized.
MAXHIDE 4
}
const_ordinary! { SM: i32;
/// [`GetSystemMetrics`](crate::GetSystemMetrics) `index` (`i32`).
=>
=>
CXSCREEN 0
CYSCREEN 1
CXVSCROLL 2
CYHSCROLL 3
CYCAPTION 4
CXBORDER 5
CYBORDER 6
CXDLGFRAME 7
CYDLGFRAME 8
CYVTHUMB 9
CXHTHUMB 10
CXICON 11
CYICON 12
CXCURSOR 13
CYCURSOR 14
CYMENU 15
CXFULLSCREEN 16
CYFULLSCREEN 17
CYKANJIWINDOW 18
MOUSEPRESENT 19
CYVSCROLL 20
CXHSCROLL 21
DEBUG 22
SWAPBUTTON 23
RESERVED1 24
RESERVED2 25
RESERVED3 26
RESERVED4 27
/// The minimum width of a window in pixels.
CXMIN 28
/// The minimum height of a window in pixels.
CYMIN 29
/// The width of a button in a window caption or title bar in pixels.
CXSIZE 30
/// The height of a button in a window caption or title bar in pixels.
CYSIZE 31
CXFRAME 32
CYFRAME 33
/// The minimum tracking width of a window in pixels. The user cannot drag
/// the window frame to a size smaller than these dimensions. A window can
/// override this value by processing the
/// [`wm::GetMinMaxInfo`](crate::msg::wm::GetMinMaxInfo) message.
CXMINTRACK 34
/// The minimum tracking height of a window in pixels. The user cannot drag
/// the window frame to a size smaller than these dimensions. A window can
/// override this value by processing the
/// [`wm::GetMinMaxInfo`](crate::msg::wm::GetMinMaxInfo) message.
CYMINTRACK 35
CXDOUBLECLK 36
CYDOUBLECLK 37
CXICONSPACING 38
CYICONSPACING 39
MENUDROPALIGNMENT 40
PENWINDOWS 41
DBCSENABLED 42
CMOUSEBUTTONS 43
CXFIXEDFRAME Self::CXDLGFRAME.0
CYFIXEDFRAME Self::CYDLGFRAME.0
CXSIZEFRAME Self::CXFRAME.0
CYSIZEFRAME Self::CYFRAME.0
SECURE 44
CXEDGE 45
CYEDGE 46
CXMINSPACING 47
CYMINSPACING 48
CXSMICON 49
CYSMICON 50
CYSMCAPTION 51
CXSMSIZE 52
CYSMSIZE 53
CXMENUSIZE 54
CYMENUSIZE 55
ARRANGE 56
CXMINIMIZED 57
CYMINIMIZED 58
CXMAXTRACK 59
CYMAXTRACK 60
CXMAXIMIZED 61
CYMAXIMIZED 62
NETWORK 63
CLEANBOOT 67
CXDRAG 68
CYDRAG 69
SHOWSOUNDS 70
CXMENUCHECK 71
CYMENUCHECK 72
SLOWMACHINE 73
MIDEASTENABLED 74
MOUSEWHEELPRESENT 75
XVIRTUALSCREEN 76
YVIRTUALSCREEN 77
CXVIRTUALSCREEN 78
CYVIRTUALSCREEN 79
CMONITORS 80
SAMEDISPLAYFORMAT 81
IMMENABLED 82
CXFOCUSBORDER 83
CYFOCUSBORDER 84
TABLETPC 86
MEDIACENTER 87
STARTER 88
SERVERR2 89
MOUSEHORIZONTALWHEELPRESENT 91
CXPADDEDBORDER 92
DIGITIZER 94
MAXIMUMTOUCHES 95
CMETRICS 97
REMOTESESSION 0x1000
SHUTTINGDOWN 0x2000
REMOTECONTROL 0x2001
CARETBLINKINGENABLED 0x2002
CONVERTIBLESLATEMODE 0x2003
SYSTEMDOCKED 0x2004
}
const_bitflag! { SMTO: u32;
/// [`SendMessageTimeout`](crate::prelude::user_Hwnd::SendMessageTimeout)
/// `flags` (`u32`).
=>
=>
ABORTIFHUNG 0x0002
BLOCK 0x0001
NORMAL 0x0000
NOTIMEOUTIFNOTHUNG 0x0008
ERRORONEXIT 0x0020
}
const_ordinary! { SPI: u32;
/// [`SystemParametersInfo`](crate::SystemParametersInfo) `action` (`u32`).
=>
=>
GETBEEP 0x0001
SETBEEP 0x0002
GETMOUSE 0x0003
SETMOUSE 0x0004
GETBORDER 0x0005
SETBORDER 0x0006
GETKEYBOARDSPEED 0x000a
SETKEYBOARDSPEED 0x000b
LANGDRIVER 0x000c
ICONHORIZONTALSPACING 0x000d
GETSCREENSAVETIMEOUT 0x000e
SETSCREENSAVETIMEOUT 0x000f
GETSCREENSAVEACTIVE 0x0010
SETSCREENSAVEACTIVE 0x0011
GETGRIDGRANULARITY 0x0012
SETGRIDGRANULARITY 0x0013
SETDESKWALLPAPER 0x0014
SETDESKPATTERN 0x0015
GETKEYBOARDDELAY 0x0016
SETKEYBOARDDELAY 0x0017
ICONVERTICALSPACING 0x0018
GETICONTITLEWRAP 0x0019
SETICONTITLEWRAP 0x001a
GETMENUDROPALIGNMENT 0x001b
SETMENUDROPALIGNMENT 0x001c
SETDOUBLECLKWIDTH 0x001d
SETDOUBLECLKHEIGHT 0x001e
GETICONTITLELOGFONT 0x001f
SETDOUBLECLICKTIME 0x0020
SETMOUSEBUTTONSWAP 0x0021
SETICONTITLELOGFONT 0x0022
GETFASTTASKSWITCH 0x0023
SETFASTTASKSWITCH 0x0024
SETDRAGFULLWINDOWS 0x0025
GETDRAGFULLWINDOWS 0x0026
GETNONCLIENTMETRICS 0x0029
SETNONCLIENTMETRICS 0x002a
GETMINIMIZEDMETRICS 0x002b
SETMINIMIZEDMETRICS 0x002c
GETICONMETRICS 0x002d
SETICONMETRICS 0x002e
SETWORKAREA 0x002f
GETWORKAREA 0x0030
SETPENWINDOWS 0x0031
GETHIGHCONTRAST 0x0042
SETHIGHCONTRAST 0x0043
GETKEYBOARDPREF 0x0044
SETKEYBOARDPREF 0x0045
GETSCREENREADER 0x0046
SETSCREENREADER 0x0047
GETANIMATION 0x0048
SETANIMATION 0x0049
GETFONTSMOOTHING 0x004a
SETFONTSMOOTHING 0x004b
SETDRAGWIDTH 0x004c
SETDRAGHEIGHT 0x004d
SETHANDHELD 0x004e
GETLOWPOWERTIMEOUT 0x004f
GETPOWEROFFTIMEOUT 0x0050
SETLOWPOWERTIMEOUT 0x0051
SETPOWEROFFTIMEOUT 0x0052
GETLOWPOWERACTIVE 0x0053
GETPOWEROFFACTIVE 0x0054
SETLOWPOWERACTIVE 0x0055
SETPOWEROFFACTIVE 0x0056
SETCURSORS 0x0057
SETICONS 0x0058
GETDEFAULTINPUTLANG 0x0059
SETDEFAULTINPUTLANG 0x005a
SETLANGTOGGLE 0x005b
GETWINDOWSEXTENSION 0x005c
SETMOUSETRAILS 0x005d
GETMOUSETRAILS 0x005e
SETSCREENSAVERRUNNING 0x0061
SCREENSAVERRUNNING Self::SETSCREENSAVERRUNNING.0
GETFILTERKEYS 0x0032
SETFILTERKEYS 0x0033
GETTOGGLEKEYS 0x0034
SETTOGGLEKEYS 0x0035
GETMOUSEKEYS 0x0036
SETMOUSEKEYS 0x0037
GETSHOWSOUNDS 0x0038
SETSHOWSOUNDS 0x0039
GETSTICKYKEYS 0x003a
SETSTICKYKEYS 0x003b
GETACCESSTIMEOUT 0x003c
SETACCESSTIMEOUT 0x003d
GETSERIALKEYS 0x003e
SETSERIALKEYS 0x003f
GETSOUNDSENTRY 0x0040
SETSOUNDSENTRY 0x0041
GETSNAPTODEFBUTTON 0x005f
SETSNAPTODEFBUTTON 0x0060
GETMOUSEHOVERWIDTH 0x0062
SETMOUSEHOVERWIDTH 0x0063
GETMOUSEHOVERHEIGHT 0x0064
SETMOUSEHOVERHEIGHT 0x0065
GETMOUSEHOVERTIME 0x0066
SETMOUSEHOVERTIME 0x0067
GETWHEELSCROLLLINES 0x0068
SETWHEELSCROLLLINES 0x0069
GETMENUSHOWDELAY 0x006a
SETMENUSHOWDELAY 0x006b
GETWHEELSCROLLCHARS 0x006c
SETWHEELSCROLLCHARS 0x006d
GETSHOWIMEUI 0x006e
SETSHOWIMEUI 0x006f
GETMOUSESPEED 0x0070
SETMOUSESPEED 0x0071
GETSCREENSAVERRUNNING 0x0072
GETDESKWALLPAPER 0x0073
GETAUDIODESCRIPTION 0x0074
SETAUDIODESCRIPTION 0x0075
GETSCREENSAVESECURE 0x0076
SETSCREENSAVESECURE 0x0077
GETHUNGAPPTIMEOUT 0x0078
SETHUNGAPPTIMEOUT 0x0079
GETWAITTOKILLTIMEOUT 0x007a
SETWAITTOKILLTIMEOUT 0x007b
GETWAITTOKILLSERVICETIMEOUT 0x007c
SETWAITTOKILLSERVICETIMEOUT 0x007d
GETMOUSEDOCKTHRESHOLD 0x007e
SETMOUSEDOCKTHRESHOLD 0x007f
GETPENDOCKTHRESHOLD 0x0080
SETPENDOCKTHRESHOLD 0x0081
GETWINARRANGING 0x0082
SETWINARRANGING 0x0083
GETMOUSEDRAGOUTTHRESHOLD 0x0084
SETMOUSEDRAGOUTTHRESHOLD 0x0085
GETPENDRAGOUTTHRESHOLD 0x0086
SETPENDRAGOUTTHRESHOLD 0x0087
GETMOUSESIDEMOVETHRESHOLD 0x0088
SETMOUSESIDEMOVETHRESHOLD 0x0089
GETPENSIDEMOVETHRESHOLD 0x008a
SETPENSIDEMOVETHRESHOLD 0x008b
GETDRAGFROMMAXIMIZE 0x008c
SETDRAGFROMMAXIMIZE 0x008d
GETSNAPSIZING 0x008e
SETSNAPSIZING 0x008f
GETDOCKMOVING 0x0090
SETDOCKMOVING 0x0091
}
const_bitflag! { SPIF: u32;
/// [`SystemParametersInfo`](crate::SystemParametersInfo) `win_ini` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
UPDATEINIFILE 0x0001
SENDWININICHANGE 0x0002
SENDCHANGE Self::SENDWININICHANGE.0
}
const_ws! { SS: u32;
/// Label control
/// [styles](https://learn.microsoft.com/en-us/windows/win32/controls/static-control-styles)
/// (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
LEFT 0x0000_0000
CENTER 0x0000_0001
RIGHT 0x0000_0002
ICON 0x0000_0003
BLACKRECT 0x0000_0004
GRAYRECT 0x0000_0005
WHITERECT 0x0000_0006
BLACKFRAME 0x0000_0007
GRAYFRAME 0x0000_0008
WHITEFRAME 0x0000_0009
USERITEM 0x0000_000a
SIMPLE 0x0000_000b
LEFTNOWORDWRAP 0x0000_000c
OWNERDRAW 0x0000_000d
BITMAP 0x0000_000e
ENHMETAFILE 0x0000_000f
ETCHEDHORZ 0x0000_0010
ETCHEDVERT 0x0000_0011
ETCHEDFRAME 0x0000_0012
TYPEMASK 0x0000_001f
REALSIZECONTROL 0x0000_0040
NOPREFIX 0x0000_0080
NOTIFY 0x0000_0100
CENTERIMAGE 0x0000_0200
RIGHTJUST 0x0000_0400
REALSIZEIMAGE 0x0000_0800
SUNKEN 0x0000_1000
EDITCONTROL 0x0000_2000
ENDELLIPSIS 0x0000_4000
PATHELLIPSIS 0x0000_8000
WORDELLIPSIS 0x0000_c000
}
const_bitflag! { STATE_SYSTEM: u32;
/// [`DATETIMEPICKERINFO`](crate::DATETIMEPICKERINFO) `stateCheck` and
/// `stateButton`, [`TITLEBARINFOEX`](crate::TITLEBARINFOEX) `rgstate`,
/// [`COMBOBOXINFO`](crate::COMBOBOXINFO) `stateButton` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
UNAVAILABLE 0x0000_0001
SELECTED 0x0000_0002
FOCUSED 0x0000_0004
PRESSED 0x0000_0008
CHECKED 0x0000_0010
MIXED 0x0000_0020
INDETERMINATE Self::MIXED.0
READONLY 0x0000_0040
HOTTRACKED 0x0000_0080
DEFAULT 0x0000_0100
EXPANDED 0x0000_0200
COLLAPSED 0x0000_0400
BUSY 0x0000_0800
FLOATING 0x0000_1000
MARQUEED 0x0000_2000
ANIMATED 0x0000_4000
INVISIBLE 0x0000_8000
OFFSCREEN 0x0001_0000
SIZEABLE 0x0002_0000
MOVEABLE 0x0004_0000
SELFVOICING 0x0008_0000
FOCUSABLE 0x0010_0000
SELECTABLE 0x0020_0000
LINKED 0x0040_0000
TRAVERSED 0x0080_0000
MULTISELECTABLE 0x0100_0000
EXTSELECTABLE 0x0200_0000
ALERT_LOW 0x0400_0000
ALERT_MEDIUM 0x0800_0000
ALERT_HIGH 0x1000_0000
PROTECTED 0x2000_0000
VALID 0x3fff_ffff
}
const_cmd! { STN;
/// Static control `WM_COMMAND`
/// [notifications](https://learn.microsoft.com/en-us/windows/win32/controls/bumper-static-control-reference-notifications)
/// (`u16`).
=>
=>
CLICKED 0
DBLCLK 1
ENABLE 2
DISABLE 3
}
const_bitflag! { SWP: u32;
/// [`HWND::SetWindowPos`](crate::prelude::user_Hwnd::SetWindowPos) `flags`
/// (`u32`).
=>
=>
NOSIZE 0x0001
NOMOVE 0x0002
NOZORDER 0x0004
NOREDRAW 0x0008
NOACTIVATE 0x0010
FRAMECHANGED 0x0020
SHOWWINDOW 0x0040
HIDEWINDOW 0x0080
NOCOPYBITS 0x0100
NOOWNERZORDER 0x0200
NOSENDCHANGING 0x0400
DRAWFRAME Self::FRAMECHANGED.0
NOREPOSITION Self::NOOWNERZORDER.0
DEFERERASE 0x2000
ASYNCWINDOWPOS 0x4000
}
const_ordinary! { SW_S: u8;
/// [`wm::ShowWindow`](crate::msg::wm::ShowWindow) status (`u8`).
///
/// Originally has `SW` prefix.
=>
=>
PARENTCLOSING 1
OTHERZOOM 2
PARENTOPENING 3
OTHERUNZOOM 4
}
const_bitflag! { TME: u32;
/// [`TrackMouseEvent`](crate::TrackMouseEvent) `dwFlags` (`u32`).
=>
=>
CANCEL 0x8000_0000
HOVER 0x0000_0001
LEAVE 0x0000_0002
NONCLIENT 0x0000_0010
QUERY 0x4000_0000
}
const_bitflag! { TPM: u32;
/// [`TrackPopupMenu`](crate::prelude::user_Hmenu::TrackPopupMenu) `flags`
/// (`u32`).
=>
=>
LEFTBUTTON 0x0000
RIGHTBUTTON 0x0002
LEFTALIGN 0x0000
CENTERALIGN 0x0004
RIGHTALIGN 0x0008
TOPALIGN 0x0000
VCENTERALIGN 0x0010
BOTTOMALIGN 0x0020
HORIZONTAL 0x0000
VERTICAL 0x0040
NONOTIFY 0x0080
RETURNCMD 0x0100
RECURSE 0x0001
HORPOSANIMATION 0x0400
HORNEGANIMATION 0x0800
VERPOSANIMATION 0x1000
VERNEGANIMATION 0x2000
NOANIMATION 0x4000
LAYOUTRTL 0x8000
WORKAREA 0x10000
}
const_ordinary! { ULW: u32;
/// [`UpdateLayeredWindow`](crate::prelude::user_Hwnd::UpdateLayeredWindow)
/// `flags` (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
ALPHA 0x0000_0002
COLORKEY 0x0000_0001
OPAQUE 0x0000_0004
EX_NORESIZE 0x0000_0008
}
const_ordinary! { UOI: i32;
/// [`HPROCESS::SetUserObjectInformation`](crate::prelude::user_Hprocess::SetUserObjectInformation)
/// `index` (`i32`).
=>
=>
FLAGS 1
TIMERPROC_EXCEPTION_SUPPRESSION 7
}
const_ordinary! { VK: u16;
/// [Virtual key codes](https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes)
/// (`u16`).
=>
=>
/// None of the actual values (zero).
NoValue 0
/// Left mouse button.
LBUTTON 0x01
/// Right mouse button.
RBUTTON 0x02
/// Control-break processing.
CANCEL 0x03
/// Middle mouse button (three-button mouse).
MBUTTON 0x04
/// X1 mouse button.
XBUTTON1 0x05
/// X2 mouse button.
XBUTTON2 0x06
/// BACKSPACE key.
BACK 0x08
/// TAB key.
TAB 0x09
/// CLEAR key.
CLEAR 0x0c
/// ENTER key.
RETURN 0x0d
/// SHIFT key.
SHIFT 0x10
/// CTRL key.
CONTROL 0x11
/// ALT key.
MENU 0x12
/// PAUSE key.
PAUSE 0x13
/// CAPS LOCK key.
CAPITAL 0x14
/// IME Kana mode.
KANA 0x15
/// IME Hangul mode.
HANGUL 0x15
/// IME On.
IME_ON 0x16
/// IME Junja mode.
JUNJA 0x17
/// IME final mode.
FINAL 0x18
/// IME Hanja mode.
HANJA 0x19
/// IME Kanji mode.
KANJI 0x19
/// ESC key.
ESCAPE 0x1b
/// IME convert.
CONVERT 0x1c
/// IME nonconvert.
NONCONVERT 0x1d
/// IME accept.
ACCEPT 0x1e
/// IME mode change request.
MODECHANGE 0x1f
/// SPACEBAR key.
SPACE 0x20
/// PAGE UP key.
PRIOR 0x21
/// PAGE DOWN key.
NEXT 0x22
/// END key.
END 0x23
/// HOME key.
HOME 0x24
/// LEFT ARROW key.
LEFT 0x25
/// UP ARROW key.
UP 0x26
/// RIGHT ARROW key.
RIGHT 0x27
/// DOWN ARROW key.
DOWN 0x28
/// SELECT key.
SELECT 0x29
/// PRINT key.
PRINT 0x2a
/// EXECUTE key.
EXECUTE 0x2b
/// PRINT SCREEN key.
SNAPSHOT 0x2c
/// INS key.
INSERT 0x2d
/// DEL key.
DELETE 0x2e
/// HELP key.
HELP 0x2f
/// Number 0 key.
CHAR_0 0x30
/// Number 1 key.
CHAR_1 0x31
/// Number 2 key.
CHAR_2 0x32
/// Number 3 key.
CHAR_3 0x33
/// Number 4 key.
CHAR_4 0x34
/// Number 5 key.
CHAR_5 0x35
/// Number 6 key.
CHAR_6 0x36
/// Number 7 key.
CHAR_7 0x37
/// Number 8 key.
CHAR_8 0x38
/// Number 9 key.
CHAR_9 0x39
/// Character A key.
CHAR_A 0x41
/// Character B key.
CHAR_B 0x42
/// Character C key.
CHAR_C 0x43
/// Character D key.
CHAR_D 0x44
/// Character E key.
CHAR_E 0x45
/// Character F key.
CHAR_F 0x46
/// Character G key.
CHAR_G 0x47
/// Character H key.
CHAR_H 0x48
/// Character I key.
CHAR_I 0x49
/// Character J key.
CHAR_J 0x4a
/// Character K key.
CHAR_K 0x4b
/// Character L key.
CHAR_L 0x4c
/// Character M key.
CHAR_M 0x4d
/// Character N key.
CHAR_N 0x4e
/// Character O key.
CHAR_O 0x4f
/// Character P key.
CHAR_P 0x50
/// Character Q key.
CHAR_Q 0x51
/// Character R key.
CHAR_R 0x52
/// Character S key.
CHAR_S 0x53
/// Character T key.
CHAR_T 0x54
/// Character U key.
CHAR_U 0x55
/// Character V key.
CHAR_V 0x56
/// Character W key.
CHAR_W 0x57
/// Character X key.
CHAR_X 0x58
/// Character Y key.
CHAR_Y 0x59
/// Character Z key.
CHAR_Z 0x5a
/// Left Windows key (Natural keyboard).
LWIN 0x5b
/// Right Windows key (Natural keyboard).
RWIN 0x5c
/// Applications key context menu (Natural keyboard).
APPS 0x5d
/// Computer Sleep key.
SLEEP 0x5f
/// Numeric keypad 0 key.
NUMPAD0 0x60
/// Numeric keypad 1 key.
NUMPAD1 0x61
/// Numeric keypad 2 key.
NUMPAD2 0x62
/// Numeric keypad 3 key.
NUMPAD3 0x63
/// Numeric keypad 4 key.
NUMPAD4 0x64
/// Numeric keypad 5 key.
NUMPAD5 0x65
/// Numeric keypad 6 key.
NUMPAD6 0x66
/// Numeric keypad 7 key.
NUMPAD7 0x67
/// Numeric keypad 8 key.
NUMPAD8 0x68
/// Numeric keypad 9 key.
NUMPAD9 0x69
/// Numeric keypad multiply key.
MULTIPLY 0x6a
/// Numeric keypad add key.
ADD 0x6b
/// Numeric keypad separator key.
SEPARATOR 0x6c
/// Numeric keypad subtract key.
SUBTRACT 0x6d
/// Numeric keypad decimal key.
DECIMAL 0x6e
/// Numeric keypad divide key.
DIVIDE 0x6f
F1 0x70
F2 0x71
F3 0x72
F4 0x73
F5 0x74
F6 0x75
F7 0x76
F8 0x77
F9 0x78
F10 0x79
F11 0x7a
F12 0x7b
F13 0x7c
F14 0x7d
F15 0x7e
F16 0x7f
F17 0x80
F18 0x81
F19 0x82
F20 0x83
F21 0x84
F22 0x85
F23 0x86
F24 0x87
/// NUM LOCK key.
NUMLOCK 0x90
/// SCROLL LOCK key.
SCROLL 0x91
OEM_NEC_EQUAL 0x92
OEM_FJ_JISHO 0x92
OEM_FJ_MASSHOU 0x93
OEM_FJ_TOUROKU 0x94
OEM_FJ_LOYA 0x95
OEM_FJ_ROYA 0x96
/// Left SHIFT key.
LSHIFT 0xa0
/// Right SHIFT key.
RSHIFT 0xa1
/// Left CONTROL key.
LCONTROL 0xa2
/// Right CONTROL key.
RCONTROL 0xa3
/// Left MENU key.
LMENU 0xa4
/// Right MENU key.
RMENU 0xa5
BROWSER_BACK 0xa6
BROWSER_FORWARD 0xa7
BROWSER_REFRESH 0xa8
BROWSER_STOP 0xa9
BROWSER_SEARCH 0xaa
BROWSER_FAVORITES 0xab
BROWSER_HOME 0xac
VOLUME_MUTE 0xad
VOLUME_DOWN 0xae
VOLUME_UP 0xaf
MEDIA_NEXT_TRACK 0xb0
MEDIA_PREV_TRACK 0xb1
MEDIA_STOP 0xb2
MEDIA_PLAY_PAUSE 0xb3
LAUNCH_MAIL 0xb4
LAUNCH_MEDIA_SELECT 0xb5
LAUNCH_APP1 0xb6
LAUNCH_APP2 0xb7
OEM_1 0xba
OEM_PLUS 0xbb
OEM_COMMA 0xbc
OEM_MINUS 0xbd
OEM_PERIOD 0xbe
OEM_2 0xbf
OEM_3 0xc0
OEM_4 0xdb
OEM_5 0xdc
OEM_6 0xdd
OEM_7 0xde
OEM_8 0xdf
OEM_AX 0xe1
OEM_102 0xe2
ICO_HELP 0xe3
ICO_00 0xe4
PROCESSKEY 0xe5
ICO_CLEAR 0xe6
PACKET 0xe7
OEM_RESET 0xe9
OEM_JUMP 0xea
OEM_PA1 0xeb
OEM_PA2 0xec
OEM_PA3 0xed
OEM_WSCTRL 0xee
OEM_CUSEL 0xef
OEM_ATTN 0xf0
OEM_FINISH 0xf1
OEM_COPY 0xf2
OEM_AUTO 0xf3
OEM_ENLW 0xf4
OEM_BACKTAB 0xf5
ATTN 0xf6
CRSEL 0xf7
EXSEL 0xf8
EREOF 0xf9
PLAY 0xfa
ZOOM 0xfb
NONAME 0xfc
PA1 0xfd
OEM_CLEAR 0xfe
}
const_ordinary! { WA: u16;
/// [`wm::Activate`](crate::msg::wm::Activate) activation state (`u16`).
=>
=>
INACTIVE 0
ACTIVE 1
CLICKACTIVE 2
}
const_ordinary! { WDA: u32;
/// [`HWND::GetWindowDisplayAffinity`](crate::prelude::user_Hwnd::GetWindowDisplayAffinity)
/// and
/// [`HWND::SetWindowDisplayAffinity`](crate::prelude::user_Hwnd::SetWindowDisplayAffinity)
/// `dwAffinity` (`u32`).
=>
=>
NONE 0x0000_0000
MONITOR 0x0000_0001
EXCLUDEFROMCAPTURE 0x0000_0011
}
const_ordinary! { WH: i32;
/// [`HHOOK::CallNextHookEx`](crate::prelude::user_Hhook::CallNextHookEx)
/// `code` and
/// [`HHOOK::SetWindowsHookEx`](crate::prelude::user_Hhook::SetWindowsHookEx)
/// `hook_id` (`i32`).
=>
=>
MSGFILTER -1
JOURNALRECORD 0
JOURNALPLAYBACK 1
KEYBOARD 2
GETMESSAGE 3
CALLWNDPROC 4
CBT 5
SYSMSGFILTER 6
MOUSE 7
DEBUG 9
SHELL 10
FOREGROUNDIDLE 11
CALLWNDPROCRET 12
KEYBOARD_LL 13
MOUSE_LL 14
}
const_bitflag! { WPF: u32;
/// [`WINDOWPLACEMENT`](crate::WINDOWPLACEMENT) `flags` (`u32`).
=>
=>
SETMINPOSITION 0x0001
RESTORETOMAXIMIZED 0x0002
ASYNCWINDOWPLACEMENT 0x0004
}
const_ordinary! { WM: u32;
/// Window message codes (`u32`).
///
/// **Note:** Control-specific messages have their own types, which are
/// convertible to `WM`.
=>
=>
NULL 0x0000
CREATE 0x0001
DESTROY 0x0002
MOVE 0x0003
SIZE 0x0005
ACTIVATE 0x0006
SETFOCUS 0x0007
KILLFOCUS 0x0008
ENABLE 0x000a
SETREDRAW 0x000b
SETTEXT 0x000c
GETTEXT 0x000d
GETTEXTLENGTH 0x000e
PAINT 0x000f
CLOSE 0x0010
QUERYENDSESSION 0x0011
QUERYOPEN 0x0013
ENDSESSION 0x0016
QUIT 0x0012
ERASEBKGND 0x0014
SYSCOLORCHANGE 0x0015
SHOWWINDOW 0x0018
WININICHANGE 0x001a
DEVMODECHANGE 0x001b
ACTIVATEAPP 0x001c
FONTCHANGE 0x001d
TIMECHANGE 0x001e
CANCELMODE 0x001f
SETCURSOR 0x0020
MOUSEACTIVATE 0x0021
CHILDACTIVATE 0x0022
QUEUESYNC 0x0023
GETMINMAXINFO 0x0024
PAINTICON 0x0026
ICONERASEBKGND 0x0027
NEXTDLGCTL 0x0028
SPOOLERSTATUS 0x002a
DRAWITEM 0x002b
MEASUREITEM 0x002c
DELETEITEM 0x002d
VKEYTOITEM 0x002e
CHARTOITEM 0x002f
SETFONT 0x0030
GETFONT 0x0031
SETHOTKEY 0x0032
GETHOTKEY 0x0033
QUERYDRAGICON 0x0037
COMPAREITEM 0x0039
GETOBJECT 0x003d
COPYDATA 0x004a
COMPACTING 0x0041
COMMNOTIFY 0x0044
WINDOWPOSCHANGING 0x0046
WINDOWPOSCHANGED 0x0047
POWER 0x0048
NOTIFY 0x004e
INPUTLANGCHANGEREQUEST 0x0050
INPUTLANGCHANGE 0x0051
TCARD 0x0052
HELP 0x0053
USERCHANGED 0x0054
NOTIFYFORMAT 0x0055
CONTEXTMENU 0x007b
STYLECHANGING 0x007c
STYLECHANGED 0x007d
DISPLAYCHANGE 0x007e
GETICON 0x007f
SETICON 0x0080
NCCREATE 0x0081
NCDESTROY 0x0082
NCCALCSIZE 0x0083
NCHITTEST 0x0084
NCPAINT 0x0085
NCACTIVATE 0x0086
GETDLGCODE 0x0087
SYNCPAINT 0x0088
NCMOUSEMOVE 0x00a0
NCLBUTTONDOWN 0x00a1
NCLBUTTONUP 0x00a2
NCLBUTTONDBLCLK 0x00a3
NCRBUTTONDOWN 0x00a4
NCRBUTTONUP 0x00a5
NCRBUTTONDBLCLK 0x00a6
NCMBUTTONDOWN 0x00a7
NCMBUTTONUP 0x00a8
NCMBUTTONDBLCLK 0x00a9
NCXBUTTONDOWN 0x00ab
NCXBUTTONUP 0x00ac
NCXBUTTONDBLCLK 0x00ad
INPUT_DEVICE_CHANGE 0x00fe
INPUT 0x00ff
KEYFIRST 0x0100
KEYDOWN 0x0100
KEYUP 0x0101
CHAR 0x0102
DEADCHAR 0x0103
SYSKEYDOWN 0x0104
SYSKEYUP 0x0105
SYSCHAR 0x0106
SYSDEADCHAR 0x0107
UNICHAR 0x0109
KEYLAST 0x0109
IME_STARTCOMPOSITION 0x010d
IME_ENDCOMPOSITION 0x010e
IME_COMPOSITION 0x010f
IME_KEYLAST 0x010f
INITDIALOG 0x0110
COMMAND 0x0111
SYSCOMMAND 0x0112
TIMER 0x0113
HSCROLL 0x0114
VSCROLL 0x0115
INITMENU 0x0116
INITMENUPOPUP 0x0117
GESTURE 0x0119
GESTURENOTIFY 0x011a
MENUSELECT 0x011f
MENUCHAR 0x0120
ENTERIDLE 0x0121
MENURBUTTONUP 0x0122
MENUDRAG 0x0123
MENUGETOBJECT 0x0124
UNINITMENUPOPUP 0x0125
MENUCOMMAND 0x0126
CHANGEUISTATE 0x0127
UPDATEUISTATE 0x0128
QUERYUISTATE 0x0129
CTLCOLORMSGBOX 0x0132
CTLCOLOREDIT 0x0133
CTLCOLORLISTBOX 0x0134
CTLCOLORBTN 0x0135
CTLCOLORDLG 0x0136
CTLCOLORSCROLLBAR 0x0137
CTLCOLORSTATIC 0x0138
/// Originally has no `WM` prefix.
MN_GETHMENU 0x01e1
MOUSEFIRST 0x0200
MOUSEMOVE 0x0200
LBUTTONDOWN 0x0201
LBUTTONUP 0x0202
LBUTTONDBLCLK 0x0203
RBUTTONDOWN 0x0204
RBUTTONUP 0x0205
RBUTTONDBLCLK 0x0206
MBUTTONDOWN 0x0207
MBUTTONUP 0x0208
MBUTTONDBLCLK 0x0209
MOUSEWHEEL 0x020a
MOUSEHWHEEL 0x020e
XBUTTONDOWN 0x020b
XBUTTONUP 0x020c
XBUTTONDBLCLK 0x020d
MOUSELAST 0x020e
PARENTNOTIFY 0x0210
ENTERMENULOOP 0x0211
EXITMENULOOP 0x0212
NEXTMENU 0x0213
SIZING 0x0214
CAPTURECHANGED 0x0215
MOVING 0x0216
POWERBROADCAST 0x0218
DEVICECHANGE 0x0219
MDICREATE 0x0220
MDIDESTROY 0x0221
MDIACTIVATE 0x0222
MDIRESTORE 0x0223
MDINEXT 0x0224
MDIMAXIMIZE 0x0225
MDITILE 0x0226
MDICASCADE 0x0227
MDIICONARRANGE 0x0228
MDIGETACTIVE 0x0229
MDISETMENU 0x0230
ENTERSIZEMOVE 0x0231
EXITSIZEMOVE 0x0232
DROPFILES 0x0233
MDIREFRESHMENU 0x0234
POINTERDEVICECHANGE 0x0238
POINTERDEVICEINRANGE 0x0239
POINTERDEVICEOUTOFRANGE 0x023a
TOUCH 0x0240
NCPOINTERUPDATE 0x0241
NCPOINTERDOWN 0x0242
NCPOINTERUP 0x0243
POINTERUPDATE 0x0245
POINTERDOWN 0x0246
POINTERUP 0x0247
POINTERENTER 0x0249
POINTERLEAVE 0x024a
POINTERACTIVATE 0x024b
POINTERCAPTURECHANGED 0x024c
TOUCHHITTESTING 0x024d
POINTERWHEEL 0x024e
POINTERHWHEEL 0x024f
/// Originally has no `WM` prefix.
DM_POINTERHITTEST 0x0250
POINTERROUTEDTO 0x0251
POINTERROUTEDAWAY 0x0252
POINTERROUTEDRELEASED 0x0253
IME_SETCONTEXT 0x0281
IME_NOTIFY 0x0282
IME_CONTROL 0x0283
IME_COMPOSITIONFULL 0x0284
IME_SELECT 0x0285
IME_CHAR 0x0286
IME_REQUEST 0x0288
IME_KEYDOWN 0x0290
IME_KEYUP 0x0291
MOUSEHOVER 0x02a1
MOUSELEAVE 0x02a3
NCMOUSEHOVER 0x02a0
NCMOUSELEAVE 0x02a2
WTSSESSION_CHANGE 0x02b1
TABLET_FIRST 0x02c0
TABLET_LAST 0x02df
DPICHANGED 0x02e0
DPICHANGED_BEFOREPARENT 0x02e2
DPICHANGED_AFTERPARENT 0x02e3
GETDPISCALEDSIZE 0x02e4
CUT 0x0300
COPY 0x0301
PASTE 0x0302
CLEAR 0x0303
UNDO 0x0304
RENDERFORMAT 0x0305
RENDERALLFORMATS 0x0306
DESTROYCLIPBOARD 0x0307
DRAWCLIPBOARD 0x0308
PAINTCLIPBOARD 0x0309
VSCROLLCLIPBOARD 0x030a
SIZECLIPBOARD 0x030b
ASKCBFORMATNAME 0x030c
CHANGECBCHAIN 0x030d
HSCROLLCLIPBOARD 0x030e
QUERYNEWPALETTE 0x030f
PALETTEISCHANGING 0x0310
PALETTECHANGED 0x0311
HOTKEY 0x0312
PRINT 0x0317
PRINTCLIENT 0x0318
APPCOMMAND 0x0319
THEMECHANGED 0x031a
CLIPBOARDUPDATE 0x031d
DWMCOMPOSITIONCHANGED 0x031e
DWMNCRENDERINGCHANGED 0x031f
DWMCOLORIZATIONCOLORCHANGED 0x0320
DWMWINDOWMAXIMIZEDCHANGE 0x0321
DWMSENDICONICTHUMBNAIL 0x0323
DWMSENDICONICLIVEPREVIEWBITMAP 0x0326
GETTITLEBARINFOEX 0x033f
HANDHELDFIRST 0x0358
HANDHELDLAST 0x035f
AFXFIRST 0x0360
AFXLAST 0x037f
PENWINFIRST 0x0380
PENWINLAST 0x038f
APP 0x8000
USER 0x0400
}
const_ordinary! { WMPN: u16;
/// [`wm::ParentNotify`](crate::msg::wm::ParentNotify) event (`u16`).
=>
=>
CREATE WM::CREATE.0 as u16
DESTROY WM::DESTROY.0 as u16
LBUTTONDOWN WM::LBUTTONDOWN.0 as u16
MBUTTONDOWN WM::MBUTTONDOWN.0 as u16
RBUTTONDOWN WM::RBUTTONDOWN.0 as u16
XBUTTONDOWN WM::XBUTTONDOWN.0 as u16
POINTERDOWN WM::POINTERDOWN.0 as u16
}
const_ordinary! { WMSZ: u8;
/// [`wm::Sizing`](crate::msg::wm::Sizing) window edge (`u8`).
=>
=>
LEFT 1
RIGHT 2
TOP 3
TOPLEFT 4
TOPRIGHT 5
BOTTOM 6
BOTTOMLEFT 7
BOTTOMRIGHT 8
}
const_bitflag! { WS: u32;
/// Window
/// [styles](https://learn.microsoft.com/en-us/windows/win32/winmsg/window-styles)
/// (`u32`).
///
/// **Note:** Control-specific styles have their own types, which are
/// convertible to `WS`.
=>
=>
/// None of the actual values (zero).
NoValue 0
/// The window is an overlapped window. An overlapped window has a title bar
/// and a border. Same as the `WS::TILED` style.
OVERLAPPED 0x0000_0000
/// The window is a pop-up window. This style cannot be used with the
/// `WS_CHILD` style.
POPUP 0x8000_0000
/// The window is a child window. A window with this style cannot have a menu
/// bar. This style cannot be used with the `WS::POPUP` style.
CHILD 0x4000_0000
/// The window is initially minimized. Same as the `WS::ICONIC` style.
MINIMIZE 0x2000_0000
/// The window is initially visible. This style can be turned on and off by
/// using the [`HWND::ShowWindow`](crate::prelude::user_Hwnd::ShowWindow) or
/// [`HWND::SetWindowPos`](crate::prelude::user_Hwnd::SetWindowPos)
/// function.
VISIBLE 0x1000_0000
/// The window is initially disabled. A disabled window cannot receive input
/// from the user. To change this after a window has been created use the
/// [`HWND::EnableWindow`](crate::prelude::user_Hwnd::EnableWindow)
/// function.
DISABLED 0x0800_0000
/// Clips child windows relative to each other; that is when a particular
/// child window receives a [`wm::Paint`](crate::msg::wm::Paint) message,
/// the `WS::CLIPSIBLINGS` style clips all other overlapping child windows
/// out of the region of the child window to be updated. If
/// `WS::CLIPSIBLINGS` is not specified and child windows overlap it is
/// possible when drawing within the client area of a child window to draw
/// within the client area of a neighboring child window.
CLIPSIBLINGS 0x0400_0000
/// Excludes the area occupied by child windows when drawing occurs within
/// the parent window. This style is used when creating the parent window.
CLIPCHILDREN 0x0200_0000
/// The window is initially maximized.
MAXIMIZE 0x0100_0000
/// The window has a title bar (includes the `WS::BORDER` style).
CAPTION 0x00c0_0000
/// The window has a thin-line border.
BORDER 0x0080_0000
/// The window has a border of a style typically used with dialog boxes. A
/// window with this style cannot have a title bar.
DLGFRAME 0x0040_0000
/// The window has a vertical scroll bar.
VSCROLL 0x0020_0000
/// The window has a horizontal scroll bar.
HSCROLL 0x0010_0000
/// The window has a window menu on its title bar. The `WS::CAPTION` style
/// must also be specified.
SYSMENU 0x0008_0000
/// The window has a sizing border. Same as the `WS::SIZEBOX` style.
THICKFRAME 0x0004_0000
/// The window is the first control of a group of controls. The group
/// consists of this first control and all controls defined after it up to
/// the next control with the `WS::GROUP` style. The first control in each
/// group usually has the `WS::TABSTOP` style so that the user can move from
/// group to group. The user can subsequently change the keyboard focus from
/// one control in the group to the next control in the group by using the
/// direction keys.
///
/// You can turn this style on and off to change dialog box navigation. To
/// change this style after a window has been created use the
/// [`HWND::SetWindowLongPtr`](crate::prelude::user_Hwnd::SetWindowLongPtr)
/// function.
GROUP 0x0002_0000
/// The window is a control that can receive the keyboard focus when the user
/// presses the TAB key. Pressing the TAB key changes the keyboard focus to
/// the next control with the `WS::TABSTOP` style.
///
/// You can turn this style on and off to change dialog box navigation. To
/// change this style after a window has been created use the
/// [`HWND::SetWindowLongPtr`](crate::prelude::user_Hwnd::SetWindowLongPtr)
/// function. For user-created windows and modeless dialogs to work with tab
/// stops alter the message loop to call the
/// [`HWND::IsDialogMessage`](crate::prelude::user_Hwnd::IsDialogMessage)
/// function.
TABSTOP 0x0001_0000
/// The window has a minimize button. Cannot be combined with the
/// [`WS_EX::CONTEXTHELP`](crate::co::WS_EX::CONTEXTHELP) style. The
/// `WS::SYSMENU` style must also be specified.
MINIMIZEBOX 0x0002_0000
/// The window has a maximize button. Cannot be combined with the
/// [`WS_EX::CONTEXTHELP`](crate::co::WS_EX::CONTEXTHELP) style. The
/// `WS::SYSMENU` style must also be specified.
MAXIMIZEBOX 0x0001_0000
/// The window is an overlapped window. An overlapped window has a title bar
/// and a border. Same as the `WS::OVERLAPPED` style.
TILED Self::OVERLAPPED.0
/// The window is initially minimized. Same as the `WS::MINIMIZE` style.
ICONIC Self::MINIMIZE.0
/// The window has a sizing border. Same as the `WS::THICKFRAME` style.
SIZEBOX Self::THICKFRAME.0
/// The window is an overlapped window. Same as the `WS::OVERLAPPEDWINDOW`
/// style.
TILEDWINDOW Self::OVERLAPPEDWINDOW.0
/// The window is an overlapped window. Same as the `WS::TILEDWINDOW` style.
OVERLAPPEDWINDOW Self::OVERLAPPED.0 | Self::CAPTION.0 | Self::SYSMENU.0 | Self::THICKFRAME.0 | Self::MINIMIZEBOX.0 | Self::MAXIMIZEBOX.0
/// The window is a pop-up window. This style cannot be used with the
/// `WS::CHILD` style.
POPUPWINDOW Self::POPUP.0 | Self::BORDER.0 | Self::SYSMENU.0
/// Same as the `WS::CHILD` style.
CHILDWINDOW Self::CHILD.0
}
const_bitflag! { WS_EX: u32;
/// Extended window
/// [styles](https://learn.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles)
/// (`u32`).
///
/// **Note:** Control-specific extended styles have their own types, which
/// are convertible to `WS`.
=>
=>
/// None of the actual values (zero).
NoValue 0
/// The window has a double border; the window can optionally be created
/// with a title bar by specifying the
/// [`WS::CAPTION`](crate::co::WS::CAPTION) style in the dwStyle parameter.
DLGMODALFRAME 0x0000_0001
/// The child window created with this style does not send the
/// [`wm::ParentNotify`](crate::msg::wm::ParentNotify) message to its parent
/// window when it is created or destroyed.
NOPARENTNOTIFY 0x0000_0004
/// The window should be placed above all non-topmost windows and should
/// stay above them even when the window is deactivated. To add or remove
/// this style use the
/// [`HWND::SetWindowPos`](crate::prelude::user_Hwnd::SetWindowPos)
/// function.
TOPMOST 0x0000_0008
/// The window accepts drag-drop files.
ACCEPTFILES 0x0000_0010
/// The window should not be painted until siblings beneath the window (that
/// were created by the same thread) have been painted. The window appears
/// transparent because the bits of underlying sibling windows have already
/// been painted.
///
/// To achieve transparency without these restrictions use the
/// [`HWND::SetWindowRgn`](crate::prelude::user_Hwnd::SetWindowRgn)
/// function.
TRANSPARENT 0x0000_0020
/// The window is a MDI child window.
MDICHILD 0x0000_0040
/// The window is intended to be used as a floating toolbar. A tool window
/// has a title bar that is shorter than a normal title bar and the window
/// title is drawn using a smaller font. A tool window does not appear in the
/// taskbar or in the dialog that appears when the user presses ALT+TAB. If a
/// tool window has a system menu its icon is not displayed on the title
/// bar. However you can display the system menu by right-clicking or by
/// typing ALT+SPACE.
TOOLWINDOW 0x0000_0080
/// The window has a border with a raised edge.
WINDOWEDGE 0x0000_0100
/// The window has a border with a sunken edge.
CLIENTEDGE 0x0000_0200
/// The title bar of the window includes a question mark. When the user
/// clicks the question mark the cursor changes to a question mark with a
/// pointer. If the user then clicks a child window the child receives a
/// [`wm::Help`](crate::msg::wm::Help) message. The child window should pass
/// the message to the parent window procedure which should call the
/// [`WinHelp`](crate::prelude::user_Hwnd::WinHelp) function using the
/// `HELP_WM_HELP` command. The Help application displays a pop-up window
/// that typically contains help for the child window.
///
/// `WS_EX::CONTEXTHELP` cannot be used with the
/// [`WS::MAXIMIZEBOX`](crate::co::WS::MAXIMIZEBOX) or
/// [`WS::MINIMIZEBOX`](crate::co::WS::MINIMIZEBOX) styles.
CONTEXTHELP 0x0000_0400
/// The window has generic "right-aligned" properties. This depends on the
/// window class. This style has an effect only if the shell language is
/// Hebrew Arabic or another language that supports reading-order
/// alignment; otherwise the style is ignored.
///
/// Using the `WS_EX::RIGHT` style for static or edit controls has the same
/// effect as using the [`SS::RIGHT`](crate::co::SS::RIGHT) or
/// [`ES::RIGHT`](crate::co::ES::RIGHT) style respectively. Using this
/// style with button controls has the same effect as using
/// [`BS::RIGHT`](crate::co::BS::RIGHT) and
/// [`BS::RIGHTBUTTON`](crate::co::BS::RIGHTBUTTON) styles.
RIGHT 0x0000_1000
/// The window has generic left-aligned properties. This is the default.
LEFT 0x0000_0000
/// If the shell language is Hebrew Arabic or another language that
/// supports reading-order alignment the window text is displayed using
/// right-to-left reading-order properties. For other languages the style is
/// ignored.
RTLREADING 0x0000_2000
/// The window text is displayed using left-to-right reading-order
/// properties. This is the default.
LTRREADING 0x0000_0000
/// If the shell language is Hebrew Arabic or another language that
/// supports reading order alignment the vertical scroll bar (if present) is
/// to the left of the client area. For other languages the style is ignored.
LEFTSCROLLBAR 0x0000_4000
/// The vertical scroll bar (if present) is to the right of the client area.
/// This is the default.
RIGHTSCROLLBAR 0x0000_0000
/// The window itself contains child windows that should take part in dialog
/// box navigation. If this style is specified the dialog manager recurses
/// into children of this window when performing navigation operations such
/// as handling the TAB key an arrow key or a keyboard mnemonic.
CONTROLPARENT 0x0001_0000
/// The window has a three-dimensional border style intended to be used for
/// items that do not accept user input.
STATICEDGE 0x0002_0000
/// Forces a top-level window onto the taskbar when the window is visible.
APPWINDOW 0x0004_0000
/// The window is an overlapped window.
OVERLAPPEDWINDOW Self::WINDOWEDGE.0 | Self::CLIENTEDGE.0
/// The window is palette window which is a modeless dialog box that
/// presents an array of commands.
PALETTEWINDOW Self::WINDOWEDGE.0 | Self::TOOLWINDOW.0 | Self::TOPMOST.0
/// The window is a layered window. This style cannot be used if the window
/// has a class style of either [`CS::OWNDC`](crate::co::CS::OWNDC) or
/// [`CS::CLASSDC`](crate::co::CS::CLASSDC).
///
/// Windows 8: The `WS_EX::LAYERED` style is supported for top-level windows
/// and child windows. Previous Windows versions support `WS_EX::LAYERED`
/// only for top-level windows.
LAYERED 0x0008_0000
/// The window does not pass its window layout to its child windows.
NOINHERITLAYOUT 0x0010_0000
/// The window does not render to a redirection surface. This is for windows
/// that do not have visible content or that use mechanisms other than
/// surfaces to provide their visual.
NOREDIRECTIONBITMAP 0x0020_0000
/// If the shell language is Hebrew Arabic or another language that
/// supports reading order alignment the horizontal origin of the window is
/// on the right edge. Increasing horizontal values advance to the left.
LAYOUTRTL 0x0040_0000
/// Paints all descendants of a window in bottom-to-top painting order using
/// double-buffering. Bottom-to-top painting order allows a descendent
/// window to have translucency (alpha) and transparency (color-key)
/// effects but only if the descendent window also has the
/// `WS_EX::TRANSPARENT` bit set. Double-buffering allows the window and its
/// descendents to be painted without flicker. This cannot be used if the
/// window has a class style of either [`CS::OWNDC`](crate::co::CS::OWNDC)
/// or [`CS::CLASSDC`](crate::co::CS::CLASSDC).
///
/// Windows 2000: This style is not supported.
COMPOSITED 0x0200_0000
/// A top-level window created with this style does not become the foreground
/// window when the user clicks it. The system does not bring this window to
/// the foreground when the user minimizes or closes the foreground window.
///
/// The window should not be activated through programmatic access or via
/// keyboard navigation by accessible technology such as Narrator.
///
/// To activate the window use the SetActiveWindow or
/// [`HWND::SetForegroundWindow`](crate::prelude::user_Hwnd::SetForegroundWindow)
/// function.
///
/// The window does not appear on the taskbar by default. To force the
/// window to appear on the taskbar use the `WS_EX::APPWINDOW` style.
NOACTIVATE 0x0800_0000
}
const_bitflag! { WVR: u32;
/// [`wm::NcCalcSize`](crate::msg::wm::NcCalcSize) return flags (`u32`).
=>
=>
/// None of the actual values (zero).
NoValue 0
ALIGNTOP 0x0010
ALIGNLEFT 0x0020
ALIGNBOTTOM 0x0040
ALIGNRIGHT 0x0080
HREDRAW 0x0100
VREDRAW 0x0200
REDRAW Self::HREDRAW.0 | Self::VREDRAW.0
VALIDRECTS 0x0400
}